[FIR] Create CFG for files to track top-level property initialization
In order to properly analyze top-level property initialization, a control-flow graph must be created for FirFiles. This change adds the foundation for the file CFG and updates body resolve to create the CFG. Checking the CFG for proper initialization is separated into a following change to ease code review. KT-56683
This commit is contained in:
+1
-1
@@ -42,7 +42,7 @@ sealed class LLFirResolveTarget(
|
|||||||
abstract fun forEachTarget(action: (FirElementWithResolveState) -> Unit)
|
abstract fun forEachTarget(action: (FirElementWithResolveState) -> Unit)
|
||||||
|
|
||||||
override fun toString(): String = buildString {
|
override fun toString(): String = buildString {
|
||||||
append(this::class.simpleName)
|
append(this@LLFirResolveTarget::class.simpleName)
|
||||||
append("(")
|
append("(")
|
||||||
buildList {
|
buildList {
|
||||||
add(firFile.name)
|
add(firFile.name)
|
||||||
|
|||||||
+1
-1
@@ -161,5 +161,5 @@ private fun KtNamedFunction.isReanalyzableContainer(): Boolean = hasBlockBody()
|
|||||||
|
|
||||||
private fun KtPropertyAccessor.isReanalyzableContainer(): Boolean = isSetter || hasBlockBody() || property.typeReference != null
|
private fun KtPropertyAccessor.isReanalyzableContainer(): Boolean = isSetter || hasBlockBody() || property.typeReference != null
|
||||||
|
|
||||||
private fun KtProperty.isReanalyzableContainer(): Boolean = typeReference != null && (isTopLevel || !hasDelegateExpressionOrInitializer())
|
private fun KtProperty.isReanalyzableContainer(): Boolean = typeReference != null && !hasDelegateExpressionOrInitializer()
|
||||||
|
|
||||||
|
|||||||
+2
@@ -115,6 +115,8 @@ internal class FileStructure private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getAllDiagnosticsForFile(diagnosticCheckerFilter: DiagnosticCheckerFilter): Collection<KtPsiDiagnostic> {
|
fun getAllDiagnosticsForFile(diagnosticCheckerFilter: DiagnosticCheckerFilter): Collection<KtPsiDiagnostic> {
|
||||||
|
// TODO, KT-60799: Add a new FileStructure for file diagnostics
|
||||||
|
firFile.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
||||||
val structureElements = getAllStructureElements()
|
val structureElements = getAllStructureElements()
|
||||||
return buildList {
|
return buildList {
|
||||||
collectDiagnosticsFromStructureElements(structureElements, diagnosticCheckerFilter)
|
collectDiagnosticsFromStructureElements(structureElements, diagnosticCheckerFilter)
|
||||||
|
|||||||
+44
-2
@@ -44,6 +44,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveCont
|
|||||||
import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractsDslNames
|
import org.jetbrains.kotlin.fir.resolve.transformers.contracts.FirContractsDslNames
|
||||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||||
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.isUsedInControlFlowGraphBuilderForClass
|
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.isUsedInControlFlowGraphBuilderForClass
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.isUsedInControlFlowGraphBuilderForFile
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.psi.KtCodeFragment
|
import org.jetbrains.kotlin.psi.KtCodeFragment
|
||||||
@@ -114,6 +115,19 @@ private class LLFirBodyTargetResolver(
|
|||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
is FirFile -> {
|
||||||
|
if (target.resolvePhase >= resolverPhase) return true
|
||||||
|
|
||||||
|
resolveFileAnnotationContainerIfNeeded(target)
|
||||||
|
|
||||||
|
// resolve file CFG graph here, to do this we need to have property blocks resoled
|
||||||
|
resolveMembersForControlFlowGraph(target)
|
||||||
|
performCustomResolveUnderLock(target) {
|
||||||
|
calculateControlFlowGraph(target)
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
is FirCodeFragment -> {
|
is FirCodeFragment -> {
|
||||||
resolveCodeFragmentContext(target)
|
resolveCodeFragmentContext(target)
|
||||||
performCustomResolveUnderLock(target) {
|
performCustomResolveUnderLock(target) {
|
||||||
@@ -156,6 +170,35 @@ private class LLFirBodyTargetResolver(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun calculateControlFlowGraph(target: FirFile) {
|
||||||
|
checkWithAttachment(
|
||||||
|
target.controlFlowGraphReference == null,
|
||||||
|
{ "'controlFlowGraphReference' should be 'null' if the file phase < $resolverPhase)" },
|
||||||
|
) {
|
||||||
|
withFirEntry("firFile", target)
|
||||||
|
}
|
||||||
|
|
||||||
|
val dataFlowAnalyzer = transformer.declarationsTransformer.dataFlowAnalyzer
|
||||||
|
dataFlowAnalyzer.enterFile(target, buildGraph = true)
|
||||||
|
val controlFlowGraph = dataFlowAnalyzer.exitFile()
|
||||||
|
?: errorWithAttachment("CFG should not be 'null' as 'buildGraph' is specified") {
|
||||||
|
withFirEntry("firFile", target)
|
||||||
|
}
|
||||||
|
|
||||||
|
target.replaceControlFlowGraphReference(FirControlFlowGraphReferenceImpl(controlFlowGraph))
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun resolveMembersForControlFlowGraph(target: FirFile) {
|
||||||
|
withFile(target) {
|
||||||
|
for (member in target.declarations) {
|
||||||
|
if (member is FirControlFlowGraphOwner && member.isUsedInControlFlowGraphBuilderForFile) {
|
||||||
|
member.lazyResolveToPhase(resolverPhase.previous)
|
||||||
|
performResolve(member)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun resolveCodeFragmentContext(firCodeFragment: FirCodeFragment) {
|
private fun resolveCodeFragmentContext(firCodeFragment: FirCodeFragment) {
|
||||||
val ktCodeFragment = firCodeFragment.psi as? KtCodeFragment
|
val ktCodeFragment = firCodeFragment.psi as? KtCodeFragment
|
||||||
?: errorWithAttachment("Code fragment source not found") {
|
?: errorWithAttachment("Code fragment source not found") {
|
||||||
@@ -191,7 +234,7 @@ private class LLFirBodyTargetResolver(
|
|||||||
|
|
||||||
override fun doLazyResolveUnderLock(target: FirElementWithResolveState) {
|
override fun doLazyResolveUnderLock(target: FirElementWithResolveState) {
|
||||||
when (target) {
|
when (target) {
|
||||||
is FirRegularClass, is FirCodeFragment -> error("Should have been resolved in ${::doResolveWithoutLock.name}")
|
is FirFile, is FirRegularClass, is FirCodeFragment -> error("Should have been resolved in ${::doResolveWithoutLock.name}")
|
||||||
is FirConstructor -> resolve(target, BodyStateKeepers.CONSTRUCTOR)
|
is FirConstructor -> resolve(target, BodyStateKeepers.CONSTRUCTOR)
|
||||||
is FirFunction -> resolve(target, BodyStateKeepers.FUNCTION)
|
is FirFunction -> resolve(target, BodyStateKeepers.FUNCTION)
|
||||||
is FirProperty -> resolve(target, BodyStateKeepers.PROPERTY)
|
is FirProperty -> resolve(target, BodyStateKeepers.PROPERTY)
|
||||||
@@ -202,7 +245,6 @@ private class LLFirBodyTargetResolver(
|
|||||||
is FirDanglingModifierList,
|
is FirDanglingModifierList,
|
||||||
is FirFileAnnotationsContainer,
|
is FirFileAnnotationsContainer,
|
||||||
is FirTypeAlias,
|
is FirTypeAlias,
|
||||||
is FirFile,
|
|
||||||
-> {
|
-> {
|
||||||
// No bodies here
|
// No bodies here
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -190,6 +190,9 @@ var KtFile.originalKtFile by UserDataProperty(ORIGINAL_KT_FILE_KEY)
|
|||||||
|
|
||||||
|
|
||||||
private fun KtClassLikeDeclaration.findFir(provider: FirProvider): FirClassLikeDeclaration? {
|
private fun KtClassLikeDeclaration.findFir(provider: FirProvider): FirClassLikeDeclaration? {
|
||||||
|
// TODO, KTIJ-26848: this is a workaround for IDE index inconsistency for unnamed classes
|
||||||
|
if (name == null) return null
|
||||||
|
|
||||||
return if (provider is LLFirProvider) {
|
return if (provider is LLFirProvider) {
|
||||||
provider.getFirClassifierByDeclaration(this)
|
provider.getFirClassifierByDeclaration(this)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ var x: Int/* ReanalyzablePropertyStructureElement */
|
|||||||
|
|
||||||
val y = 42/* NonReanalyzableNonClassDeclarationStructureElement */
|
val y = 42/* NonReanalyzableNonClassDeclarationStructureElement */
|
||||||
|
|
||||||
var z: Int = 15/* ReanalyzablePropertyStructureElement */
|
var z: Int = 15/* NonReanalyzableNonClassDeclarationStructureElement */
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ fun () {/* ReanalyzableFunctionStructureElement */
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val : Int = 4/* ReanalyzablePropertyStructureElement */
|
val : Int = 4/* NonReanalyzableNonClassDeclarationStructureElement */
|
||||||
|
|
||||||
var : Int/* ReanalyzablePropertyStructureElement */
|
var : Int/* ReanalyzablePropertyStructureElement */
|
||||||
get() = 4
|
get() = 4
|
||||||
|
|||||||
+1
-7
@@ -1,7 +1 @@
|
|||||||
BEFORE MODIFICATION:
|
IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] val i: R|kotlin/Int| = Int(42)
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
|
||||||
|
|
||||||
AFTER MODIFICATION:
|
|
||||||
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val i: R|kotlin/Int| = LAZY_EXPRESSION
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
|
||||||
Vendored
+1
-18
@@ -1,18 +1 @@
|
|||||||
BEFORE MODIFICATION:
|
IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Int|by <Unresolved name: lazy>#(<L> = [ResolvedTo(BODY_RESOLVE)] lazy@fun <anonymous>(): R|kotlin/Int| <inline=Unknown> {
|
|
||||||
local final [ResolvedTo(BODY_RESOLVE)] fun doSmth([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/String|): R|kotlin/Int| {
|
|
||||||
^doSmth Int(4)
|
|
||||||
}
|
|
||||||
|
|
||||||
^ R|<local>/doSmth|(String(str))
|
|
||||||
}
|
|
||||||
)
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| {
|
|
||||||
^ D|/x|.<Unresolved name: getValue>#(Null(null), ::R|/x|)
|
|
||||||
}
|
|
||||||
|
|
||||||
AFTER MODIFICATION:
|
|
||||||
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val x: R|kotlin/Int|by LAZY_EXPRESSION
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| {
|
|
||||||
^ D|/x|.<Unresolved name: getValue>#(Null(null), ::R|/x|)
|
|
||||||
}
|
|
||||||
+1
-18
@@ -1,18 +1 @@
|
|||||||
BEFORE MODIFICATION:
|
IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] val <no name provided>: R|kotlin/Int|by <Unresolved name: lazy>#(<L> = [ResolvedTo(BODY_RESOLVE)] lazy@fun <anonymous>(): R|kotlin/Int| <inline=Unknown> {
|
|
||||||
local final [ResolvedTo(BODY_RESOLVE)] fun doSmth([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/String|): R|kotlin/Int| {
|
|
||||||
^doSmth Int(4)
|
|
||||||
}
|
|
||||||
|
|
||||||
^ R|<local>/doSmth|(String(str))
|
|
||||||
}
|
|
||||||
)
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| {
|
|
||||||
^ D|/<no name provided>|.<Unresolved name: getValue>#(Null(null), ::R|/<no name provided>|)
|
|
||||||
}
|
|
||||||
|
|
||||||
AFTER MODIFICATION:
|
|
||||||
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val <no name provided>: R|kotlin/Int|by LAZY_EXPRESSION
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| {
|
|
||||||
^ D|/<no name provided>|.<Unresolved name: getValue>#(Null(null), ::R|/<no name provided>|)
|
|
||||||
}
|
|
||||||
Vendored
+1
-11
@@ -1,11 +1 @@
|
|||||||
BEFORE MODIFICATION:
|
IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Int|by <Unresolved name: ErrorDelegate>#()
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| {
|
|
||||||
^ D|/x|.<Unresolved name: getValue>#(Null(null), ::R|/x|)
|
|
||||||
}
|
|
||||||
|
|
||||||
AFTER MODIFICATION:
|
|
||||||
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val x: R|kotlin/Int|by LAZY_EXPRESSION
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| {
|
|
||||||
^ D|/x|.<Unresolved name: getValue>#(Null(null), ::R|/x|)
|
|
||||||
}
|
|
||||||
Vendored
+1
-7
@@ -1,7 +1 @@
|
|||||||
BEFORE MODIFICATION:
|
IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] val x: R|kotlin/Int| = R|/doSmth|(String(str))
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
|
||||||
|
|
||||||
AFTER MODIFICATION:
|
|
||||||
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val x: R|kotlin/Int| = LAZY_EXPRESSION
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
|
||||||
+1
-7
@@ -1,7 +1 @@
|
|||||||
BEFORE MODIFICATION:
|
IN-BLOCK MODIFICATION IS NOT APPLICABLE FOR THIS PLACE
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] val <no name provided>: R|kotlin/Int| = R|/doSmth|(String(str))
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
|
||||||
|
|
||||||
AFTER MODIFICATION:
|
|
||||||
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val <no name provided>: R|kotlin/Int| = LAZY_EXPRESSION
|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
|
||||||
@@ -480,12 +480,12 @@ FILE: [ResolvedTo(BODY_RESOLVE)] fileElements.kt
|
|||||||
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int|
|
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int|
|
||||||
|
|
||||||
}
|
}
|
||||||
public? final? [ResolvedTo(RAW_FIR)] val a: <implicit> = LAZY_EXPRESSION
|
public final [ResolvedTo(BODY_RESOLVE)] val a: R|kotlin/Int| = Int(1)
|
||||||
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
||||||
public? final? [ResolvedTo(RAW_FIR)] val b: <implicit> = LAZY_EXPRESSION
|
public final [ResolvedTo(BODY_RESOLVE)] val b: R|kotlin/Int| = Int(2).R|kotlin/Int.plus|(R|one/a|)
|
||||||
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
||||||
public? final? [ResolvedTo(RAW_FIR)] val c: <implicit> = LAZY_EXPRESSION
|
public final [ResolvedTo(BODY_RESOLVE)] val c: R|kotlin/Int| = R|one/b|.R|kotlin/Int.plus|(R|one/a|)
|
||||||
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int|
|
||||||
public? final? [ResolvedTo(RAW_FIR)] fun test1(): R|kotlin/Unit| { LAZY_BLOCK }
|
public? final? [ResolvedTo(RAW_FIR)] fun test1(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||||
@Deprecated[Unresolved](String()) @Anno[Unresolved](IntegerLiteral(2)) public? final? [ResolvedTo(RAW_FIR)] fun test2(): R|kotlin/Unit| { LAZY_BLOCK }
|
@Deprecated[Unresolved](String()) @Anno[Unresolved](IntegerLiteral(2)) public? final? [ResolvedTo(RAW_FIR)] fun test2(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||||
public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| {
|
public? final? [ResolvedTo(RAW_FIR)] class A : R|kotlin/Any| {
|
||||||
|
|||||||
+128
-121
@@ -5,99 +5,104 @@ digraph initializationInTry_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function getNullableString" style="filled" fillcolor=red];
|
0 [label="Enter file initializationInTry.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file initializationInTry.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Const: Null(null)"];
|
|
||||||
3 [label="Jump: ^getNullableString Null(null)"];
|
subgraph cluster_1 {
|
||||||
4 [label="Stub" style="filled" fillcolor=gray];
|
color=red
|
||||||
5 [label="Exit block" style="filled" fillcolor=gray];
|
2 [label="Enter function getNullableString" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
6 [label="Exit function getNullableString" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
3 [label="Enter block"];
|
||||||
|
4 [label="Const: Null(null)"];
|
||||||
|
5 [label="Jump: ^getNullableString Null(null)"];
|
||||||
|
6 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
8 [label="Exit function getNullableString" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {6};
|
3 -> {4};
|
||||||
3 -> {4} [style=dotted];
|
4 -> {5};
|
||||||
4 -> {5} [style=dotted];
|
5 -> {8};
|
||||||
5 -> {6} [style=dotted];
|
5 -> {6} [style=dotted];
|
||||||
|
6 -> {7} [style=dotted];
|
||||||
|
7 -> {8} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
7 [label="Enter function takeNullableString" style="filled" fillcolor=red];
|
9 [label="Enter function takeNullableString" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter block"];
|
10 [label="Enter block"];
|
||||||
9 [label="Exit block"];
|
11 [label="Exit block"];
|
||||||
}
|
}
|
||||||
10 [label="Exit function takeNullableString" style="filled" fillcolor=red];
|
12 [label="Exit function takeNullableString" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
7 -> {8};
|
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
|
10 -> {11};
|
||||||
subgraph cluster_4 {
|
|
||||||
color=red
|
|
||||||
11 [label="Enter function test_1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter block"];
|
|
||||||
13 [label="Variable declaration: lval x: R|kotlin/String?|"];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
14 [label="Try expression enter"];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
15 [label="Try main block enter"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
16 [label="Enter block"];
|
|
||||||
17 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
|
||||||
18 [label="Check not null: R|/getNullableString|()!!" style="filled" fillcolor=yellow];
|
|
||||||
19 [label="Variable declaration: lval y: R|kotlin/String|"];
|
|
||||||
20 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
|
||||||
21 [label="Assignment: R|<local>/x|"];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Try main block exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
24 [label="Enter finally"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
25 [label="Enter block"];
|
|
||||||
26 [label="Access qualifier kotlin/Unit"];
|
|
||||||
27 [label="Exit block"];
|
|
||||||
}
|
|
||||||
28 [label="Exit finally"];
|
|
||||||
}
|
|
||||||
29 [label="Try expression exit"];
|
|
||||||
}
|
|
||||||
30 [label="Access variable R|<local>/x|"];
|
|
||||||
31 [label="Function call: R|/takeNullableString|(...)" style="filled" fillcolor=yellow];
|
|
||||||
32 [label="Exit block"];
|
|
||||||
}
|
|
||||||
33 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
13 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
14 [label="Enter block"];
|
||||||
|
15 [label="Variable declaration: lval x: R|kotlin/String?|"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
16 [label="Try expression enter"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Try main block enter"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter block"];
|
||||||
|
19 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
||||||
|
20 [label="Check not null: R|/getNullableString|()!!" style="filled" fillcolor=yellow];
|
||||||
|
21 [label="Variable declaration: lval y: R|kotlin/String|"];
|
||||||
|
22 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
||||||
|
23 [label="Assignment: R|<local>/x|"];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Try main block exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter finally"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
27 [label="Enter block"];
|
||||||
|
28 [label="Access qualifier kotlin/Unit"];
|
||||||
|
29 [label="Exit block"];
|
||||||
|
}
|
||||||
|
30 [label="Exit finally"];
|
||||||
|
}
|
||||||
|
31 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
32 [label="Access variable R|<local>/x|"];
|
||||||
|
33 [label="Function call: R|/takeNullableString|(...)" style="filled" fillcolor=yellow];
|
||||||
|
34 [label="Exit block"];
|
||||||
|
}
|
||||||
|
35 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
14 -> {24} [label="onUncaughtException"];
|
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
|
16 -> {26} [label="onUncaughtException"];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
17 -> {24} [label="onUncaughtException"];
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
18 -> {24} [label="onUncaughtException"];
|
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
|
19 -> {26} [label="onUncaughtException"];
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
20 -> {24} [label="onUncaughtException"];
|
20 -> {26} [label="onUncaughtException"];
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
|
22 -> {26} [label="onUncaughtException"];
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
@@ -108,64 +113,64 @@ digraph initializationInTry_kt {
|
|||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
|
33 -> {34};
|
||||||
subgraph cluster_11 {
|
|
||||||
color=red
|
|
||||||
34 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter block"];
|
|
||||||
36 [label="Variable declaration: lval x: R|kotlin/String?|"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
37 [label="Try expression enter"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
38 [label="Try main block enter"];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
39 [label="Enter block"];
|
|
||||||
40 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
|
||||||
41 [label="Variable declaration: lval y: R|kotlin/String?|"];
|
|
||||||
42 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
|
||||||
43 [label="Assignment: R|<local>/x|"];
|
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
|
||||||
45 [label="Try main block exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
46 [label="Enter finally"];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
47 [label="Enter block"];
|
|
||||||
48 [label="Access qualifier kotlin/Unit"];
|
|
||||||
49 [label="Exit block"];
|
|
||||||
}
|
|
||||||
50 [label="Exit finally"];
|
|
||||||
}
|
|
||||||
51 [label="Try expression exit"];
|
|
||||||
}
|
|
||||||
52 [label="Access variable R|<local>/x|"];
|
|
||||||
53 [label="Function call: R|/takeNullableString|(...)" style="filled" fillcolor=yellow];
|
|
||||||
54 [label="Exit block"];
|
|
||||||
}
|
|
||||||
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=red
|
||||||
|
36 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
37 [label="Enter block"];
|
||||||
|
38 [label="Variable declaration: lval x: R|kotlin/String?|"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
39 [label="Try expression enter"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
40 [label="Try main block enter"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter block"];
|
||||||
|
42 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
||||||
|
43 [label="Variable declaration: lval y: R|kotlin/String?|"];
|
||||||
|
44 [label="Function call: R|/getNullableString|()" style="filled" fillcolor=yellow];
|
||||||
|
45 [label="Assignment: R|<local>/x|"];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Try main block exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
48 [label="Enter finally"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
49 [label="Enter block"];
|
||||||
|
50 [label="Access qualifier kotlin/Unit"];
|
||||||
|
51 [label="Exit block"];
|
||||||
|
}
|
||||||
|
52 [label="Exit finally"];
|
||||||
|
}
|
||||||
|
53 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
54 [label="Access variable R|<local>/x|"];
|
||||||
|
55 [label="Function call: R|/takeNullableString|(...)" style="filled" fillcolor=yellow];
|
||||||
|
56 [label="Exit block"];
|
||||||
|
}
|
||||||
|
57 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
37 -> {46} [label="onUncaughtException"];
|
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
|
39 -> {48} [label="onUncaughtException"];
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
40 -> {46} [label="onUncaughtException"];
|
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
42 -> {46} [label="onUncaughtException"];
|
42 -> {48} [label="onUncaughtException"];
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
|
44 -> {48} [label="onUncaughtException"];
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
@@ -176,5 +181,7 @@ digraph initializationInTry_kt {
|
|||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
|
55 -> {56};
|
||||||
|
56 -> {57};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,104 +5,111 @@ digraph annotatedLocalClass_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class Ann" style="filled" fillcolor=red];
|
0 [label="Enter file annotatedLocalClass.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file annotatedLocalClass.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
4 [label="Exit class Ann" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
|
||||||
0 -> {1} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class Ann" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter block"];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
6 [label="Exit class Ann" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {6} [style=dotted];
|
||||||
|
2 -> {3} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
7 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
7 [label="Enter when"];
|
9 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter when branch condition "];
|
|
||||||
9 [label="Access variable R|<local>/b|"];
|
|
||||||
10 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
11 [label="Synthetic else branch"];
|
|
||||||
12 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
13 [label="Enter block"];
|
10 [label="Enter when branch condition "];
|
||||||
14 [label="Jump: ^foo Unit"];
|
11 [label="Access variable R|<local>/b|"];
|
||||||
15 [label="Stub" style="filled" fillcolor=gray];
|
12 [label="Exit when branch condition"];
|
||||||
16 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
17 [label="Exit when branch result" style="filled" fillcolor=gray];
|
13 [label="Synthetic else branch"];
|
||||||
18 [label="Exit when"];
|
14 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
15 [label="Enter block"];
|
||||||
|
16 [label="Jump: ^foo Unit"];
|
||||||
|
17 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
18 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
19 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
20 [label="Exit when"];
|
||||||
}
|
}
|
||||||
19 [label="Local class declaration"];
|
21 [label="Local class declaration"];
|
||||||
20 [label="Function call: R|/bar|()" style="filled" fillcolor=yellow];
|
22 [label="Function call: R|/bar|()" style="filled" fillcolor=yellow];
|
||||||
21 [label="Exit block"];
|
23 [label="Exit block"];
|
||||||
}
|
}
|
||||||
22 [label="Exit function foo" style="filled" fillcolor=red];
|
24 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter class Local" style="filled" fillcolor=red];
|
25 [label="Enter class Local" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
24 [label="Enter function <init>" style="filled" fillcolor=red];
|
26 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
25 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
27 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
26 [label="Exit function <init>" style="filled" fillcolor=red];
|
28 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
27 [label="Exit class Local" style="filled" fillcolor=red];
|
29 [label="Exit class Local" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11 12};
|
10 -> {11};
|
||||||
11 -> {18};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13 14};
|
||||||
13 -> {14};
|
13 -> {20};
|
||||||
14 -> {22};
|
14 -> {15};
|
||||||
14 -> {15} [style=dotted];
|
15 -> {16};
|
||||||
15 -> {16} [style=dotted];
|
16 -> {24};
|
||||||
16 -> {17} [style=dotted];
|
16 -> {17} [style=dotted];
|
||||||
17 -> {18} [style=dotted];
|
17 -> {18} [style=dotted];
|
||||||
18 -> {19};
|
18 -> {19} [style=dotted];
|
||||||
19 -> {20 23};
|
19 -> {20} [style=dotted];
|
||||||
19 -> {23} [style=dashed];
|
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22 25};
|
||||||
|
21 -> {25} [style=dashed];
|
||||||
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
23 -> {27} [style=dotted];
|
|
||||||
23 -> {24} [style=dashed];
|
|
||||||
24 -> {25};
|
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27} [color=green];
|
25 -> {29} [style=dotted];
|
||||||
|
25 -> {26} [style=dashed];
|
||||||
|
26 -> {27};
|
||||||
|
27 -> {28};
|
||||||
|
28 -> {29} [color=green];
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
28 [label="Enter function bar" style="filled" fillcolor=red];
|
30 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
29 [label="Enter block"];
|
31 [label="Enter block"];
|
||||||
30 [label="Exit block"];
|
32 [label="Exit block"];
|
||||||
}
|
}
|
||||||
31 [label="Exit function bar" style="filled" fillcolor=red];
|
33 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
28 -> {29};
|
|
||||||
29 -> {30};
|
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+208
-201
@@ -5,260 +5,267 @@ digraph binaryOperations_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file binaryOperations.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file binaryOperations.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter when"];
|
color=red
|
||||||
subgraph cluster_3 {
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
color=blue
|
subgraph cluster_2 {
|
||||||
3 [label="Enter when branch condition "];
|
color=blue
|
||||||
subgraph cluster_4 {
|
3 [label="Enter block"];
|
||||||
color=blue
|
subgraph cluster_3 {
|
||||||
4 [label="Enter ||"];
|
color=blue
|
||||||
5 [label="Access variable R|<local>/b1|"];
|
4 [label="Enter when"];
|
||||||
6 [label="Exit left part of ||"];
|
subgraph cluster_4 {
|
||||||
7 [label="Enter right part of ||"];
|
color=blue
|
||||||
8 [label="Access variable R|<local>/b2|"];
|
5 [label="Enter when branch condition "];
|
||||||
9 [label="Exit ||"];
|
subgraph cluster_5 {
|
||||||
}
|
color=blue
|
||||||
10 [label="Exit when branch condition"];
|
6 [label="Enter ||"];
|
||||||
}
|
7 [label="Access variable R|<local>/b1|"];
|
||||||
11 [label="Synthetic else branch"];
|
8 [label="Exit left part of ||"];
|
||||||
12 [label="Enter when branch result"];
|
9 [label="Enter right part of ||"];
|
||||||
subgraph cluster_5 {
|
10 [label="Access variable R|<local>/b2|"];
|
||||||
color=blue
|
11 [label="Exit ||"];
|
||||||
13 [label="Enter block"];
|
}
|
||||||
14 [label="Const: Int(1)"];
|
12 [label="Exit when branch condition"];
|
||||||
15 [label="Exit block"];
|
}
|
||||||
}
|
13 [label="Synthetic else branch"];
|
||||||
16 [label="Exit when branch result"];
|
14 [label="Enter when branch result"];
|
||||||
17 [label="Exit when"];
|
subgraph cluster_6 {
|
||||||
}
|
color=blue
|
||||||
18 [label="Exit block"];
|
15 [label="Enter block"];
|
||||||
}
|
16 [label="Const: Int(1)"];
|
||||||
19 [label="Exit function test_1" style="filled" fillcolor=red];
|
17 [label="Exit block"];
|
||||||
|
}
|
||||||
|
18 [label="Exit when branch result"];
|
||||||
|
19 [label="Exit when"];
|
||||||
|
}
|
||||||
|
20 [label="Exit block"];
|
||||||
|
}
|
||||||
|
21 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7 9};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9 11};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11 12};
|
10 -> {11};
|
||||||
11 -> {17};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13 14};
|
||||||
13 -> {14};
|
13 -> {19};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
|
19 -> {20};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
20 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
21 [label="Enter block"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
22 [label="Enter when"];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
24 [label="Enter &&"];
|
|
||||||
25 [label="Access variable R|<local>/b1|"];
|
|
||||||
26 [label="Exit left part of &&"];
|
|
||||||
27 [label="Enter right part of &&"];
|
|
||||||
28 [label="Access variable R|<local>/b2|"];
|
|
||||||
29 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
30 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
31 [label="Synthetic else branch"];
|
|
||||||
32 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter block"];
|
|
||||||
34 [label="Const: Int(1)"];
|
|
||||||
35 [label="Exit block"];
|
|
||||||
}
|
|
||||||
36 [label="Exit when branch result"];
|
|
||||||
37 [label="Exit when"];
|
|
||||||
}
|
|
||||||
38 [label="Exit block"];
|
|
||||||
}
|
|
||||||
39 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
22 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
23 [label="Enter block"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter when"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter &&"];
|
||||||
|
27 [label="Access variable R|<local>/b1|"];
|
||||||
|
28 [label="Exit left part of &&"];
|
||||||
|
29 [label="Enter right part of &&"];
|
||||||
|
30 [label="Access variable R|<local>/b2|"];
|
||||||
|
31 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
32 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
33 [label="Synthetic else branch"];
|
||||||
|
34 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
35 [label="Enter block"];
|
||||||
|
36 [label="Const: Int(1)"];
|
||||||
|
37 [label="Exit block"];
|
||||||
|
}
|
||||||
|
38 [label="Exit when branch result"];
|
||||||
|
39 [label="Exit when"];
|
||||||
|
}
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27 29};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29 31};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31 32};
|
30 -> {31};
|
||||||
31 -> {37};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33 34};
|
||||||
33 -> {34};
|
33 -> {39};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
|
39 -> {40};
|
||||||
subgraph cluster_12 {
|
|
||||||
color=red
|
|
||||||
40 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter block"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
42 [label="Enter when"];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
43 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
44 [label="Enter ||"];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
45 [label="Enter &&"];
|
|
||||||
46 [label="Access variable R|<local>/b1|"];
|
|
||||||
47 [label="Exit left part of &&"];
|
|
||||||
48 [label="Enter right part of &&"];
|
|
||||||
49 [label="Access variable R|<local>/b2|"];
|
|
||||||
50 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
51 [label="Exit left part of ||"];
|
|
||||||
52 [label="Enter right part of ||"];
|
|
||||||
53 [label="Access variable R|<local>/b3|"];
|
|
||||||
54 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
55 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
56 [label="Synthetic else branch"];
|
|
||||||
57 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
58 [label="Enter block"];
|
|
||||||
59 [label="Const: Int(1)"];
|
|
||||||
60 [label="Exit block"];
|
|
||||||
}
|
|
||||||
61 [label="Exit when branch result"];
|
|
||||||
62 [label="Exit when"];
|
|
||||||
}
|
|
||||||
63 [label="Exit block"];
|
|
||||||
}
|
|
||||||
64 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=red
|
||||||
|
42 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter block"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter when"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
45 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
46 [label="Enter ||"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
47 [label="Enter &&"];
|
||||||
|
48 [label="Access variable R|<local>/b1|"];
|
||||||
|
49 [label="Exit left part of &&"];
|
||||||
|
50 [label="Enter right part of &&"];
|
||||||
|
51 [label="Access variable R|<local>/b2|"];
|
||||||
|
52 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
53 [label="Exit left part of ||"];
|
||||||
|
54 [label="Enter right part of ||"];
|
||||||
|
55 [label="Access variable R|<local>/b3|"];
|
||||||
|
56 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
57 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
58 [label="Synthetic else branch"];
|
||||||
|
59 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
60 [label="Enter block"];
|
||||||
|
61 [label="Const: Int(1)"];
|
||||||
|
62 [label="Exit block"];
|
||||||
|
}
|
||||||
|
63 [label="Exit when branch result"];
|
||||||
|
64 [label="Exit when"];
|
||||||
|
}
|
||||||
|
65 [label="Exit block"];
|
||||||
|
}
|
||||||
|
66 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48 50};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50 52};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52 54};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54 56};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56 57};
|
55 -> {56};
|
||||||
56 -> {62};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58 59};
|
||||||
58 -> {59};
|
58 -> {64};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
|
64 -> {65};
|
||||||
subgraph cluster_19 {
|
|
||||||
color=red
|
|
||||||
65 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
66 [label="Enter block"];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
67 [label="Enter when"];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
68 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
69 [label="Enter ||"];
|
|
||||||
70 [label="Access variable R|<local>/b1|"];
|
|
||||||
71 [label="Exit left part of ||"];
|
|
||||||
72 [label="Enter right part of ||"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
73 [label="Enter &&"];
|
|
||||||
74 [label="Access variable R|<local>/b2|"];
|
|
||||||
75 [label="Exit left part of &&"];
|
|
||||||
76 [label="Enter right part of &&"];
|
|
||||||
77 [label="Access variable R|<local>/b3|"];
|
|
||||||
78 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
79 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
80 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
81 [label="Synthetic else branch"];
|
|
||||||
82 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
83 [label="Enter block"];
|
|
||||||
84 [label="Const: Int(1)"];
|
|
||||||
85 [label="Exit block"];
|
|
||||||
}
|
|
||||||
86 [label="Exit when branch result"];
|
|
||||||
87 [label="Exit when"];
|
|
||||||
}
|
|
||||||
88 [label="Exit block"];
|
|
||||||
}
|
|
||||||
89 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=red
|
||||||
|
67 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
68 [label="Enter block"];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
69 [label="Enter when"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
70 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
71 [label="Enter ||"];
|
||||||
|
72 [label="Access variable R|<local>/b1|"];
|
||||||
|
73 [label="Exit left part of ||"];
|
||||||
|
74 [label="Enter right part of ||"];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
75 [label="Enter &&"];
|
||||||
|
76 [label="Access variable R|<local>/b2|"];
|
||||||
|
77 [label="Exit left part of &&"];
|
||||||
|
78 [label="Enter right part of &&"];
|
||||||
|
79 [label="Access variable R|<local>/b3|"];
|
||||||
|
80 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
81 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
82 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
83 [label="Synthetic else branch"];
|
||||||
|
84 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
85 [label="Enter block"];
|
||||||
|
86 [label="Const: Int(1)"];
|
||||||
|
87 [label="Exit block"];
|
||||||
|
}
|
||||||
|
88 [label="Exit when branch result"];
|
||||||
|
89 [label="Exit when"];
|
||||||
|
}
|
||||||
|
90 [label="Exit block"];
|
||||||
|
}
|
||||||
|
91 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72 79};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74 81};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76 78};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78 80};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81 82};
|
80 -> {81};
|
||||||
81 -> {87};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83 84};
|
||||||
83 -> {84};
|
83 -> {89};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
|
89 -> {90};
|
||||||
|
90 -> {91};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+374
-367
@@ -5,470 +5,477 @@ digraph booleanOperatorsWithConsts_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file booleanOperatorsWithConsts.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file booleanOperatorsWithConsts.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter when"];
|
color=red
|
||||||
subgraph cluster_3 {
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
color=blue
|
subgraph cluster_2 {
|
||||||
3 [label="Enter when branch condition "];
|
color=blue
|
||||||
subgraph cluster_4 {
|
3 [label="Enter block"];
|
||||||
color=blue
|
subgraph cluster_3 {
|
||||||
4 [label="Enter ||"];
|
color=blue
|
||||||
5 [label="Access variable R|<local>/b|"];
|
4 [label="Enter when"];
|
||||||
6 [label="Exit left part of ||"];
|
subgraph cluster_4 {
|
||||||
7 [label="Enter right part of ||"];
|
color=blue
|
||||||
8 [label="Const: Boolean(false)"];
|
5 [label="Enter when branch condition "];
|
||||||
9 [label="Exit ||"];
|
subgraph cluster_5 {
|
||||||
}
|
color=blue
|
||||||
10 [label="Exit when branch condition"];
|
6 [label="Enter ||"];
|
||||||
}
|
7 [label="Access variable R|<local>/b|"];
|
||||||
11 [label="Synthetic else branch"];
|
8 [label="Exit left part of ||"];
|
||||||
12 [label="Enter when branch result"];
|
9 [label="Enter right part of ||"];
|
||||||
subgraph cluster_5 {
|
10 [label="Const: Boolean(false)"];
|
||||||
color=blue
|
11 [label="Exit ||"];
|
||||||
13 [label="Enter block"];
|
}
|
||||||
14 [label="Const: Int(1)"];
|
12 [label="Exit when branch condition"];
|
||||||
15 [label="Exit block"];
|
}
|
||||||
}
|
13 [label="Synthetic else branch"];
|
||||||
16 [label="Exit when branch result"];
|
14 [label="Enter when branch result"];
|
||||||
17 [label="Exit when"];
|
subgraph cluster_6 {
|
||||||
}
|
color=blue
|
||||||
18 [label="Exit block"];
|
15 [label="Enter block"];
|
||||||
}
|
16 [label="Const: Int(1)"];
|
||||||
19 [label="Exit function test_1" style="filled" fillcolor=red];
|
17 [label="Exit block"];
|
||||||
|
}
|
||||||
|
18 [label="Exit when branch result"];
|
||||||
|
19 [label="Exit when"];
|
||||||
|
}
|
||||||
|
20 [label="Exit block"];
|
||||||
|
}
|
||||||
|
21 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7 9};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9 11};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11 12};
|
10 -> {11};
|
||||||
11 -> {17};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13 14};
|
||||||
13 -> {14};
|
13 -> {19};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
|
19 -> {20};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
20 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
21 [label="Enter block"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
22 [label="Enter when"];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
24 [label="Enter ||"];
|
|
||||||
25 [label="Const: Boolean(false)"];
|
|
||||||
26 [label="Exit left part of ||"];
|
|
||||||
27 [label="Enter right part of ||"];
|
|
||||||
28 [label="Access variable R|<local>/b|"];
|
|
||||||
29 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
30 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
31 [label="Synthetic else branch"];
|
|
||||||
32 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter block"];
|
|
||||||
34 [label="Const: Int(1)"];
|
|
||||||
35 [label="Exit block"];
|
|
||||||
}
|
|
||||||
36 [label="Exit when branch result"];
|
|
||||||
37 [label="Exit when"];
|
|
||||||
}
|
|
||||||
38 [label="Exit block"];
|
|
||||||
}
|
|
||||||
39 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
22 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
23 [label="Enter block"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter when"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter ||"];
|
||||||
|
27 [label="Const: Boolean(false)"];
|
||||||
|
28 [label="Exit left part of ||"];
|
||||||
|
29 [label="Enter right part of ||"];
|
||||||
|
30 [label="Access variable R|<local>/b|"];
|
||||||
|
31 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
32 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
33 [label="Synthetic else branch"];
|
||||||
|
34 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
35 [label="Enter block"];
|
||||||
|
36 [label="Const: Int(1)"];
|
||||||
|
37 [label="Exit block"];
|
||||||
|
}
|
||||||
|
38 [label="Exit when branch result"];
|
||||||
|
39 [label="Exit when"];
|
||||||
|
}
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
26 -> {29} [style=dotted];
|
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
28 -> {31} [style=dotted];
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31 32};
|
30 -> {31};
|
||||||
31 -> {37};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33 34};
|
||||||
33 -> {34};
|
33 -> {39};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
|
39 -> {40};
|
||||||
subgraph cluster_12 {
|
|
||||||
color=red
|
|
||||||
40 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter block"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
42 [label="Enter when"];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
43 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
44 [label="Enter ||"];
|
|
||||||
45 [label="Access variable R|<local>/b|"];
|
|
||||||
46 [label="Exit left part of ||"];
|
|
||||||
47 [label="Enter right part of ||"];
|
|
||||||
48 [label="Const: Boolean(true)"];
|
|
||||||
49 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
50 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
51 [label="Synthetic else branch"];
|
|
||||||
52 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
53 [label="Enter block"];
|
|
||||||
54 [label="Const: Int(1)"];
|
|
||||||
55 [label="Exit block"];
|
|
||||||
}
|
|
||||||
56 [label="Exit when branch result"];
|
|
||||||
57 [label="Exit when"];
|
|
||||||
}
|
|
||||||
58 [label="Exit block"];
|
|
||||||
}
|
|
||||||
59 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=red
|
||||||
|
42 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter block"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter when"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
45 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
46 [label="Enter ||"];
|
||||||
|
47 [label="Access variable R|<local>/b|"];
|
||||||
|
48 [label="Exit left part of ||"];
|
||||||
|
49 [label="Enter right part of ||"];
|
||||||
|
50 [label="Const: Boolean(true)"];
|
||||||
|
51 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
52 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
53 [label="Synthetic else branch"];
|
||||||
|
54 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
55 [label="Enter block"];
|
||||||
|
56 [label="Const: Int(1)"];
|
||||||
|
57 [label="Exit block"];
|
||||||
|
}
|
||||||
|
58 [label="Exit when branch result"];
|
||||||
|
59 [label="Exit when"];
|
||||||
|
}
|
||||||
|
60 [label="Exit block"];
|
||||||
|
}
|
||||||
|
61 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47 49};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49 51};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51 52};
|
50 -> {51};
|
||||||
51 -> {57};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53 54};
|
||||||
53 -> {54};
|
53 -> {59};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
|
59 -> {60};
|
||||||
subgraph cluster_18 {
|
|
||||||
color=red
|
|
||||||
60 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
61 [label="Enter block"];
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
62 [label="Enter when"];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
63 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
64 [label="Enter ||"];
|
|
||||||
65 [label="Const: Boolean(true)"];
|
|
||||||
66 [label="Exit left part of ||"];
|
|
||||||
67 [label="Enter right part of ||" style="filled" fillcolor=gray];
|
|
||||||
68 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
|
||||||
69 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
70 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
71 [label="Synthetic else branch"];
|
|
||||||
72 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
73 [label="Enter block"];
|
|
||||||
74 [label="Const: Int(1)"];
|
|
||||||
75 [label="Exit block"];
|
|
||||||
}
|
|
||||||
76 [label="Exit when branch result"];
|
|
||||||
77 [label="Exit when"];
|
|
||||||
}
|
|
||||||
78 [label="Exit block"];
|
|
||||||
}
|
|
||||||
79 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=red
|
||||||
|
62 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
63 [label="Enter block"];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
64 [label="Enter when"];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
65 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
66 [label="Enter ||"];
|
||||||
|
67 [label="Const: Boolean(true)"];
|
||||||
|
68 [label="Exit left part of ||"];
|
||||||
|
69 [label="Enter right part of ||" style="filled" fillcolor=gray];
|
||||||
|
70 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
||||||
|
71 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
72 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
73 [label="Synthetic else branch"];
|
||||||
|
74 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
75 [label="Enter block"];
|
||||||
|
76 [label="Const: Int(1)"];
|
||||||
|
77 [label="Exit block"];
|
||||||
|
}
|
||||||
|
78 [label="Exit when branch result"];
|
||||||
|
79 [label="Exit when"];
|
||||||
|
}
|
||||||
|
80 [label="Exit block"];
|
||||||
|
}
|
||||||
|
81 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {69};
|
66 -> {67};
|
||||||
66 -> {67} [style=dotted];
|
67 -> {68};
|
||||||
67 -> {68} [style=dotted];
|
68 -> {71};
|
||||||
68 -> {69} [style=dotted];
|
68 -> {69} [style=dotted];
|
||||||
69 -> {70};
|
69 -> {70} [style=dotted];
|
||||||
70 -> {71 72};
|
70 -> {71} [style=dotted];
|
||||||
71 -> {77};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73 74};
|
||||||
73 -> {74};
|
73 -> {79};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
|
79 -> {80};
|
||||||
subgraph cluster_24 {
|
|
||||||
color=red
|
|
||||||
80 [label="Enter function test_5" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
81 [label="Enter block"];
|
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
82 [label="Enter when"];
|
|
||||||
subgraph cluster_27 {
|
|
||||||
color=blue
|
|
||||||
83 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
84 [label="Enter &&"];
|
|
||||||
85 [label="Access variable R|<local>/b|"];
|
|
||||||
86 [label="Exit left part of &&"];
|
|
||||||
87 [label="Enter right part of &&"];
|
|
||||||
88 [label="Const: Boolean(false)"];
|
|
||||||
89 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
90 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
91 [label="Synthetic else branch"];
|
|
||||||
92 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
93 [label="Enter block"];
|
|
||||||
94 [label="Const: Int(1)"];
|
|
||||||
95 [label="Exit block"];
|
|
||||||
}
|
|
||||||
96 [label="Exit when branch result"];
|
|
||||||
97 [label="Exit when"];
|
|
||||||
}
|
|
||||||
98 [label="Exit block"];
|
|
||||||
}
|
|
||||||
99 [label="Exit function test_5" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=red
|
||||||
|
82 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
83 [label="Enter block"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
84 [label="Enter when"];
|
||||||
|
subgraph cluster_28 {
|
||||||
|
color=blue
|
||||||
|
85 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
86 [label="Enter &&"];
|
||||||
|
87 [label="Access variable R|<local>/b|"];
|
||||||
|
88 [label="Exit left part of &&"];
|
||||||
|
89 [label="Enter right part of &&"];
|
||||||
|
90 [label="Const: Boolean(false)"];
|
||||||
|
91 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
92 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
93 [label="Synthetic else branch"];
|
||||||
|
94 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
95 [label="Enter block"];
|
||||||
|
96 [label="Const: Int(1)"];
|
||||||
|
97 [label="Exit block"];
|
||||||
|
}
|
||||||
|
98 [label="Exit when branch result"];
|
||||||
|
99 [label="Exit when"];
|
||||||
|
}
|
||||||
|
100 [label="Exit block"];
|
||||||
|
}
|
||||||
|
101 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87 89};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89 91};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91 92};
|
90 -> {91};
|
||||||
91 -> {97};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {93 94};
|
||||||
93 -> {94};
|
93 -> {99};
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
|
99 -> {100};
|
||||||
subgraph cluster_30 {
|
|
||||||
color=red
|
|
||||||
100 [label="Enter function test_6" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_31 {
|
|
||||||
color=blue
|
|
||||||
101 [label="Enter block"];
|
|
||||||
subgraph cluster_32 {
|
|
||||||
color=blue
|
|
||||||
102 [label="Enter when"];
|
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
103 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_34 {
|
|
||||||
color=blue
|
|
||||||
104 [label="Enter &&"];
|
|
||||||
105 [label="Const: Boolean(false)"];
|
|
||||||
106 [label="Exit left part of &&"];
|
|
||||||
107 [label="Enter right part of &&" style="filled" fillcolor=gray];
|
|
||||||
108 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
|
||||||
109 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
110 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
111 [label="Synthetic else branch"];
|
|
||||||
112 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_35 {
|
|
||||||
color=blue
|
|
||||||
113 [label="Enter block"];
|
|
||||||
114 [label="Const: Int(1)"];
|
|
||||||
115 [label="Exit block"];
|
|
||||||
}
|
|
||||||
116 [label="Exit when branch result"];
|
|
||||||
117 [label="Exit when"];
|
|
||||||
}
|
|
||||||
118 [label="Exit block"];
|
|
||||||
}
|
|
||||||
119 [label="Exit function test_6" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=red
|
||||||
|
102 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_32 {
|
||||||
|
color=blue
|
||||||
|
103 [label="Enter block"];
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=blue
|
||||||
|
104 [label="Enter when"];
|
||||||
|
subgraph cluster_34 {
|
||||||
|
color=blue
|
||||||
|
105 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=blue
|
||||||
|
106 [label="Enter &&"];
|
||||||
|
107 [label="Const: Boolean(false)"];
|
||||||
|
108 [label="Exit left part of &&"];
|
||||||
|
109 [label="Enter right part of &&" style="filled" fillcolor=gray];
|
||||||
|
110 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
||||||
|
111 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
112 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
113 [label="Synthetic else branch"];
|
||||||
|
114 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_36 {
|
||||||
|
color=blue
|
||||||
|
115 [label="Enter block"];
|
||||||
|
116 [label="Const: Int(1)"];
|
||||||
|
117 [label="Exit block"];
|
||||||
|
}
|
||||||
|
118 [label="Exit when branch result"];
|
||||||
|
119 [label="Exit when"];
|
||||||
|
}
|
||||||
|
120 [label="Exit block"];
|
||||||
|
}
|
||||||
|
121 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {109};
|
106 -> {107};
|
||||||
106 -> {107} [style=dotted];
|
107 -> {108};
|
||||||
107 -> {108} [style=dotted];
|
108 -> {111};
|
||||||
108 -> {109} [style=dotted];
|
108 -> {109} [style=dotted];
|
||||||
109 -> {110};
|
109 -> {110} [style=dotted];
|
||||||
110 -> {111 112};
|
110 -> {111} [style=dotted];
|
||||||
111 -> {117};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113 114};
|
||||||
113 -> {114};
|
113 -> {119};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
|
119 -> {120};
|
||||||
subgraph cluster_36 {
|
|
||||||
color=red
|
|
||||||
120 [label="Enter function test_7" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_37 {
|
|
||||||
color=blue
|
|
||||||
121 [label="Enter block"];
|
|
||||||
subgraph cluster_38 {
|
|
||||||
color=blue
|
|
||||||
122 [label="Enter when"];
|
|
||||||
subgraph cluster_39 {
|
|
||||||
color=blue
|
|
||||||
123 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_40 {
|
|
||||||
color=blue
|
|
||||||
124 [label="Enter &&"];
|
|
||||||
125 [label="Access variable R|<local>/b|"];
|
|
||||||
126 [label="Exit left part of &&"];
|
|
||||||
127 [label="Enter right part of &&"];
|
|
||||||
128 [label="Const: Boolean(true)"];
|
|
||||||
129 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
130 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
131 [label="Synthetic else branch"];
|
|
||||||
132 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_41 {
|
|
||||||
color=blue
|
|
||||||
133 [label="Enter block"];
|
|
||||||
134 [label="Const: Int(1)"];
|
|
||||||
135 [label="Exit block"];
|
|
||||||
}
|
|
||||||
136 [label="Exit when branch result"];
|
|
||||||
137 [label="Exit when"];
|
|
||||||
}
|
|
||||||
138 [label="Exit block"];
|
|
||||||
}
|
|
||||||
139 [label="Exit function test_7" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
|
||||||
|
subgraph cluster_37 {
|
||||||
|
color=red
|
||||||
|
122 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_38 {
|
||||||
|
color=blue
|
||||||
|
123 [label="Enter block"];
|
||||||
|
subgraph cluster_39 {
|
||||||
|
color=blue
|
||||||
|
124 [label="Enter when"];
|
||||||
|
subgraph cluster_40 {
|
||||||
|
color=blue
|
||||||
|
125 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_41 {
|
||||||
|
color=blue
|
||||||
|
126 [label="Enter &&"];
|
||||||
|
127 [label="Access variable R|<local>/b|"];
|
||||||
|
128 [label="Exit left part of &&"];
|
||||||
|
129 [label="Enter right part of &&"];
|
||||||
|
130 [label="Const: Boolean(true)"];
|
||||||
|
131 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
132 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
133 [label="Synthetic else branch"];
|
||||||
|
134 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_42 {
|
||||||
|
color=blue
|
||||||
|
135 [label="Enter block"];
|
||||||
|
136 [label="Const: Int(1)"];
|
||||||
|
137 [label="Exit block"];
|
||||||
|
}
|
||||||
|
138 [label="Exit when branch result"];
|
||||||
|
139 [label="Exit when"];
|
||||||
|
}
|
||||||
|
140 [label="Exit block"];
|
||||||
|
}
|
||||||
|
141 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127 129};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {129 131};
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
130 -> {131 132};
|
130 -> {131};
|
||||||
131 -> {137};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133 134};
|
||||||
133 -> {134};
|
133 -> {139};
|
||||||
134 -> {135};
|
134 -> {135};
|
||||||
135 -> {136};
|
135 -> {136};
|
||||||
136 -> {137};
|
136 -> {137};
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
138 -> {139};
|
138 -> {139};
|
||||||
|
139 -> {140};
|
||||||
subgraph cluster_42 {
|
|
||||||
color=red
|
|
||||||
140 [label="Enter function test_8" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_43 {
|
|
||||||
color=blue
|
|
||||||
141 [label="Enter block"];
|
|
||||||
subgraph cluster_44 {
|
|
||||||
color=blue
|
|
||||||
142 [label="Enter when"];
|
|
||||||
subgraph cluster_45 {
|
|
||||||
color=blue
|
|
||||||
143 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_46 {
|
|
||||||
color=blue
|
|
||||||
144 [label="Enter &&"];
|
|
||||||
145 [label="Const: Boolean(true)"];
|
|
||||||
146 [label="Exit left part of &&"];
|
|
||||||
147 [label="Enter right part of &&"];
|
|
||||||
148 [label="Access variable R|<local>/b|"];
|
|
||||||
149 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
150 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
151 [label="Synthetic else branch"];
|
|
||||||
152 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_47 {
|
|
||||||
color=blue
|
|
||||||
153 [label="Enter block"];
|
|
||||||
154 [label="Const: Int(1)"];
|
|
||||||
155 [label="Exit block"];
|
|
||||||
}
|
|
||||||
156 [label="Exit when branch result"];
|
|
||||||
157 [label="Exit when"];
|
|
||||||
}
|
|
||||||
158 [label="Exit block"];
|
|
||||||
}
|
|
||||||
159 [label="Exit function test_8" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
140 -> {141};
|
140 -> {141};
|
||||||
141 -> {142};
|
|
||||||
|
subgraph cluster_43 {
|
||||||
|
color=red
|
||||||
|
142 [label="Enter function test_8" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_44 {
|
||||||
|
color=blue
|
||||||
|
143 [label="Enter block"];
|
||||||
|
subgraph cluster_45 {
|
||||||
|
color=blue
|
||||||
|
144 [label="Enter when"];
|
||||||
|
subgraph cluster_46 {
|
||||||
|
color=blue
|
||||||
|
145 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_47 {
|
||||||
|
color=blue
|
||||||
|
146 [label="Enter &&"];
|
||||||
|
147 [label="Const: Boolean(true)"];
|
||||||
|
148 [label="Exit left part of &&"];
|
||||||
|
149 [label="Enter right part of &&"];
|
||||||
|
150 [label="Access variable R|<local>/b|"];
|
||||||
|
151 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
152 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
153 [label="Synthetic else branch"];
|
||||||
|
154 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_48 {
|
||||||
|
color=blue
|
||||||
|
155 [label="Enter block"];
|
||||||
|
156 [label="Const: Int(1)"];
|
||||||
|
157 [label="Exit block"];
|
||||||
|
}
|
||||||
|
158 [label="Exit when branch result"];
|
||||||
|
159 [label="Exit when"];
|
||||||
|
}
|
||||||
|
160 [label="Exit block"];
|
||||||
|
}
|
||||||
|
161 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {146};
|
145 -> {146};
|
||||||
146 -> {147};
|
146 -> {147};
|
||||||
146 -> {149} [style=dotted];
|
|
||||||
147 -> {148};
|
147 -> {148};
|
||||||
148 -> {149};
|
148 -> {149};
|
||||||
|
148 -> {151} [style=dotted];
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
150 -> {151 152};
|
150 -> {151};
|
||||||
151 -> {157};
|
151 -> {152};
|
||||||
152 -> {153};
|
152 -> {153 154};
|
||||||
153 -> {154};
|
153 -> {159};
|
||||||
154 -> {155};
|
154 -> {155};
|
||||||
155 -> {156};
|
155 -> {156};
|
||||||
156 -> {157};
|
156 -> {157};
|
||||||
157 -> {158};
|
157 -> {158};
|
||||||
158 -> {159};
|
158 -> {159};
|
||||||
|
159 -> {160};
|
||||||
|
160 -> {161};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+172
-165
@@ -5,104 +5,111 @@ digraph complex_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class AutoCloseable" style="filled" fillcolor=red];
|
0 [label="Enter file complex.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class AutoCloseable" style="filled" fillcolor=red];
|
1 [label="Exit file complex.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function close" style="filled" fillcolor=red];
|
2 [label="Enter class AutoCloseable" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function close" style="filled" fillcolor=red];
|
3 [label="Exit class AutoCloseable" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function closeFinally" style="filled" fillcolor=red];
|
4 [label="Enter function close" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit function close" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
4 -> {5};
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function closeFinally" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter block"];
|
7 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter when"];
|
8 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
7 [label="Enter when branch condition "];
|
|
||||||
8 [label="Access variable this@R|/closeFinally|"];
|
|
||||||
9 [label="Const: Null(null)"];
|
|
||||||
10 [label="Equality operator =="];
|
|
||||||
11 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter when branch condition "];
|
9 [label="Enter when branch condition "];
|
||||||
13 [label="Access variable R|<local>/cause|"];
|
10 [label="Access variable this@R|/closeFinally|"];
|
||||||
14 [label="Const: Null(null)"];
|
11 [label="Const: Null(null)"];
|
||||||
15 [label="Equality operator =="];
|
12 [label="Equality operator =="];
|
||||||
16 [label="Exit when branch condition"];
|
13 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
17 [label="Enter when branch condition else"];
|
14 [label="Enter when branch condition "];
|
||||||
|
15 [label="Access variable R|<local>/cause|"];
|
||||||
|
16 [label="Const: Null(null)"];
|
||||||
|
17 [label="Equality operator =="];
|
||||||
18 [label="Exit when branch condition"];
|
18 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
19 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
20 [label="Enter block"];
|
19 [label="Enter when branch condition else"];
|
||||||
subgraph cluster_9 {
|
20 [label="Exit when branch condition"];
|
||||||
color=blue
|
|
||||||
21 [label="Try expression enter"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
22 [label="Try main block enter"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter block"];
|
|
||||||
24 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
|
||||||
25 [label="Exit block"];
|
|
||||||
}
|
|
||||||
26 [label="Try main block exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
27 [label="Catch enter"];
|
|
||||||
28 [label="Variable declaration: closeException: R|kotlin/Throwable|"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
29 [label="Enter block"];
|
|
||||||
30 [label="Access variable R|<local>/cause|"];
|
|
||||||
31 [label="Smart cast: R|<local>/cause|"];
|
|
||||||
32 [label="Access variable R|<local>/closeException|"];
|
|
||||||
33 [label="Function call: R|<local>/cause|.R|kotlin/Throwable.addSuppressed|(...)" style="filled" fillcolor=yellow];
|
|
||||||
34 [label="Exit block"];
|
|
||||||
}
|
|
||||||
35 [label="Catch exit"];
|
|
||||||
}
|
|
||||||
36 [label="Try expression exit"];
|
|
||||||
}
|
|
||||||
37 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
38 [label="Exit when branch result"];
|
21 [label="Enter when branch result"];
|
||||||
39 [label="Enter when branch result"];
|
subgraph cluster_9 {
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
color=blue
|
||||||
40 [label="Enter block"];
|
22 [label="Enter block"];
|
||||||
41 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
subgraph cluster_10 {
|
||||||
42 [label="Exit block"];
|
color=blue
|
||||||
|
23 [label="Try expression enter"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Try main block enter"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Exit block"];
|
||||||
|
}
|
||||||
|
28 [label="Try main block exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
29 [label="Catch enter"];
|
||||||
|
30 [label="Variable declaration: closeException: R|kotlin/Throwable|"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
31 [label="Enter block"];
|
||||||
|
32 [label="Access variable R|<local>/cause|"];
|
||||||
|
33 [label="Smart cast: R|<local>/cause|"];
|
||||||
|
34 [label="Access variable R|<local>/closeException|"];
|
||||||
|
35 [label="Function call: R|<local>/cause|.R|kotlin/Throwable.addSuppressed|(...)" style="filled" fillcolor=yellow];
|
||||||
|
36 [label="Exit block"];
|
||||||
|
}
|
||||||
|
37 [label="Catch exit"];
|
||||||
|
}
|
||||||
|
38 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
39 [label="Exit block"];
|
||||||
}
|
}
|
||||||
43 [label="Exit when branch result"];
|
40 [label="Exit when branch result"];
|
||||||
44 [label="Enter when branch result"];
|
41 [label="Enter when branch result"];
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
45 [label="Enter block"];
|
42 [label="Enter block"];
|
||||||
46 [label="Exit block"];
|
43 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Exit block"];
|
||||||
}
|
}
|
||||||
47 [label="Exit when branch result"];
|
45 [label="Exit when branch result"];
|
||||||
48 [label="Exit when"];
|
46 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
47 [label="Enter block"];
|
||||||
|
48 [label="Exit block"];
|
||||||
|
}
|
||||||
|
49 [label="Exit when branch result"];
|
||||||
|
50 [label="Exit when"];
|
||||||
}
|
}
|
||||||
49 [label="Jump: ^closeFinally when () {
|
51 [label="Jump: ^closeFinally when () {
|
||||||
==(this@R|/closeFinally|, Null(null)) -> {
|
==(this@R|/closeFinally|, Null(null)) -> {
|
||||||
}
|
}
|
||||||
==(R|<local>/cause|, Null(null)) -> {
|
==(R|<local>/cause|, Null(null)) -> {
|
||||||
@@ -119,36 +126,34 @@ digraph complex_kt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
50 [label="Stub" style="filled" fillcolor=gray];
|
52 [label="Stub" style="filled" fillcolor=gray];
|
||||||
51 [label="Exit block" style="filled" fillcolor=gray];
|
53 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
52 [label="Exit function closeFinally" style="filled" fillcolor=red];
|
54 [label="Exit function closeFinally" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5};
|
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12 44};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 46};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17 39};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19 41};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22 27};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24 29};
|
||||||
24 -> {25 27};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27 36};
|
26 -> {27 29};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29 38};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
@@ -158,99 +163,99 @@ digraph complex_kt {
|
|||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {48};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {50};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {48};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {50};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {52};
|
49 -> {50};
|
||||||
49 -> {50} [style=dotted];
|
50 -> {51};
|
||||||
50 -> {51} [style=dotted];
|
51 -> {54};
|
||||||
51 -> {52} [style=dotted];
|
51 -> {52} [style=dotted];
|
||||||
|
52 -> {53} [style=dotted];
|
||||||
|
53 -> {54} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=red
|
color=red
|
||||||
53 [label="Enter function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
55 [label="Enter function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
54 [label="Enter block"];
|
56 [label="Enter block"];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
55 [label="Enter block"];
|
57 [label="Enter block"];
|
||||||
56 [label="Access variable this@R|/firstIsInstanceOrNull|"];
|
58 [label="Access variable this@R|/firstIsInstanceOrNull|"];
|
||||||
57 [label="Function call: this@R|/firstIsInstanceOrNull|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Any?>|>|()" style="filled" fillcolor=yellow];
|
59 [label="Function call: this@R|/firstIsInstanceOrNull|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Any?>|>|()" style="filled" fillcolor=yellow];
|
||||||
58 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Any?>|"];
|
60 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Any?>|"];
|
||||||
subgraph cluster_19 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
59 [label="Enter while loop"];
|
61 [label="Enter while loop"];
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
60 [label="Enter loop condition"];
|
|
||||||
61 [label="Access variable R|<local>/<iterator>|"];
|
|
||||||
62 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
|
||||||
63 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
64 [label="Enter loop block"];
|
62 [label="Enter loop condition"];
|
||||||
subgraph cluster_22 {
|
63 [label="Access variable R|<local>/<iterator>|"];
|
||||||
|
64 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||||
|
65 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
66 [label="Enter loop block"];
|
||||||
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
65 [label="Enter block"];
|
67 [label="Enter block"];
|
||||||
66 [label="Access variable R|<local>/<iterator>|"];
|
68 [label="Access variable R|<local>/<iterator>|"];
|
||||||
67 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Any?|>|()" style="filled" fillcolor=yellow];
|
69 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Any?|>|()" style="filled" fillcolor=yellow];
|
||||||
68 [label="Variable declaration: lval element: R|kotlin/Any?|"];
|
70 [label="Variable declaration: lval element: R|kotlin/Any?|"];
|
||||||
subgraph cluster_23 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
69 [label="Enter block"];
|
71 [label="Enter block"];
|
||||||
subgraph cluster_24 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
70 [label="Enter when"];
|
72 [label="Enter when"];
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
71 [label="Enter when branch condition "];
|
|
||||||
72 [label="Access variable R|<local>/element|"];
|
|
||||||
73 [label="Type operator: (R|<local>/element| is R|T|)"];
|
|
||||||
74 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
75 [label="Synthetic else branch"];
|
|
||||||
76 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_26 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
77 [label="Enter block"];
|
73 [label="Enter when branch condition "];
|
||||||
78 [label="Access variable R|<local>/element|"];
|
74 [label="Access variable R|<local>/element|"];
|
||||||
79 [label="Smart cast: R|<local>/element|"];
|
75 [label="Type operator: (R|<local>/element| is R|T|)"];
|
||||||
80 [label="Jump: ^firstIsInstanceOrNull R|<local>/element|"];
|
76 [label="Exit when branch condition"];
|
||||||
81 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
82 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
83 [label="Exit when branch result" style="filled" fillcolor=gray];
|
77 [label="Synthetic else branch"];
|
||||||
84 [label="Exit when"];
|
78 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
79 [label="Enter block"];
|
||||||
|
80 [label="Access variable R|<local>/element|"];
|
||||||
|
81 [label="Smart cast: R|<local>/element|"];
|
||||||
|
82 [label="Jump: ^firstIsInstanceOrNull R|<local>/element|"];
|
||||||
|
83 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
84 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
85 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
86 [label="Exit when"];
|
||||||
}
|
}
|
||||||
85 [label="Exit block"];
|
87 [label="Exit block"];
|
||||||
}
|
}
|
||||||
86 [label="Exit block"];
|
88 [label="Exit block"];
|
||||||
}
|
}
|
||||||
87 [label="Exit loop block"];
|
89 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
88 [label="Exit while loop"];
|
90 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
89 [label="Exit block"];
|
91 [label="Exit block"];
|
||||||
}
|
}
|
||||||
90 [label="Const: Null(null)"];
|
92 [label="Const: Null(null)"];
|
||||||
91 [label="Jump: ^firstIsInstanceOrNull Null(null)"];
|
93 [label="Jump: ^firstIsInstanceOrNull Null(null)"];
|
||||||
92 [label="Stub" style="filled" fillcolor=gray];
|
94 [label="Stub" style="filled" fillcolor=gray];
|
||||||
93 [label="Exit block" style="filled" fillcolor=gray];
|
95 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
94 [label="Exit function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
96 [label="Exit function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
53 -> {54};
|
|
||||||
54 -> {55};
|
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
@@ -259,9 +264,9 @@ digraph complex_kt {
|
|||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64 88};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66 90};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
@@ -270,27 +275,29 @@ digraph complex_kt {
|
|||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75 76};
|
74 -> {75};
|
||||||
75 -> {84};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77 78};
|
||||||
77 -> {78};
|
77 -> {86};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {94};
|
80 -> {81};
|
||||||
80 -> {81} [style=dotted];
|
81 -> {82};
|
||||||
81 -> {82} [style=dotted];
|
82 -> {96};
|
||||||
82 -> {83} [style=dotted];
|
82 -> {83} [style=dotted];
|
||||||
83 -> {84} [style=dotted];
|
83 -> {84} [style=dotted];
|
||||||
84 -> {85};
|
84 -> {85} [style=dotted];
|
||||||
85 -> {86};
|
85 -> {86} [style=dotted];
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {60} [color=green style=dashed];
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {62} [color=green style=dashed];
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {94};
|
91 -> {92};
|
||||||
91 -> {92} [style=dotted];
|
92 -> {93};
|
||||||
92 -> {93} [style=dotted];
|
93 -> {96};
|
||||||
93 -> {94} [style=dotted];
|
93 -> {94} [style=dotted];
|
||||||
|
94 -> {95} [style=dotted];
|
||||||
|
95 -> {96} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,82 +5,87 @@ digraph defaultArguments_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
0 [label="Enter file defaultArguments.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file defaultArguments.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
2 [label="Const: Int(1)"];
|
|
||||||
3 [label="Jump: ^foo Int(1)"];
|
|
||||||
4 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
5 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
6 [label="Exit function foo" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {6};
|
|
||||||
3 -> {4} [style=dotted];
|
|
||||||
4 -> {5} [style=dotted];
|
|
||||||
5 -> {6} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
7 [label="Enter function test" style="filled" fillcolor=red];
|
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
8 [label="Enter default value of y"];
|
subgraph cluster_2 {
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter default value of y" style="filled" fillcolor=red];
|
3 [label="Enter block"];
|
||||||
10 [label="Access variable R|<local>/x|"];
|
4 [label="Const: Int(1)"];
|
||||||
11 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
|
5 [label="Jump: ^foo Int(1)"];
|
||||||
12 [label="Exit default value of y" style="filled" fillcolor=red];
|
6 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
13 [label="Exit default value of y"];
|
8 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
14 [label="Enter default value of z"];
|
}
|
||||||
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {8};
|
||||||
|
5 -> {6} [style=dotted];
|
||||||
|
6 -> {7} [style=dotted];
|
||||||
|
7 -> {8} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
10 [label="Enter default value of y"];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter default value of z" style="filled" fillcolor=red];
|
11 [label="Enter default value of y" style="filled" fillcolor=red];
|
||||||
16 [label="Postponed enter to lambda"];
|
12 [label="Access variable R|<local>/x|"];
|
||||||
subgraph cluster_5 {
|
13 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
|
||||||
color=blue
|
14 [label="Exit default value of y" style="filled" fillcolor=red];
|
||||||
17 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
18 [label="Enter block"];
|
|
||||||
19 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
|
||||||
21 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
22 [label="Postponed exit from lambda"];
|
|
||||||
23 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
24 [label="Exit default value of z" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
25 [label="Exit default value of z"];
|
15 [label="Exit default value of y"];
|
||||||
subgraph cluster_7 {
|
16 [label="Enter default value of z"];
|
||||||
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
26 [label="Enter block"];
|
17 [label="Enter default value of z" style="filled" fillcolor=red];
|
||||||
27 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
18 [label="Postponed enter to lambda"];
|
||||||
28 [label="Exit block"];
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter block"];
|
||||||
|
21 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||||
|
22 [label="Exit block"];
|
||||||
|
}
|
||||||
|
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
24 [label="Postponed exit from lambda"];
|
||||||
|
25 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
26 [label="Exit default value of z" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
29 [label="Exit function test" style="filled" fillcolor=red];
|
27 [label="Exit default value of z"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
28 [label="Enter block"];
|
||||||
|
29 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
7 -> {8};
|
|
||||||
8 -> {9 13};
|
|
||||||
8 -> {9} [style=dashed];
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11 15};
|
||||||
|
10 -> {11} [style=dashed];
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15 25};
|
14 -> {15};
|
||||||
14 -> {15} [style=dashed];
|
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17 23};
|
16 -> {17 27};
|
||||||
16 -> {22} [style=dotted];
|
|
||||||
16 -> {17} [style=dashed];
|
16 -> {17} [style=dashed];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19 25};
|
||||||
|
18 -> {24} [style=dotted];
|
||||||
|
18 -> {19} [style=dashed];
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
@@ -91,5 +96,7 @@ digraph defaultArguments_kt {
|
|||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+61
-54
@@ -5,77 +5,84 @@ digraph emptyWhen_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file emptyWhen.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file emptyWhen.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter when"];
|
color=red
|
||||||
3 [label="Synthetic else branch"];
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
4 [label="Exit when"];
|
subgraph cluster_2 {
|
||||||
}
|
color=blue
|
||||||
5 [label="Exit block"];
|
3 [label="Enter block"];
|
||||||
}
|
subgraph cluster_3 {
|
||||||
6 [label="Exit function test_1" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter when"];
|
||||||
|
5 [label="Synthetic else branch"];
|
||||||
|
6 [label="Exit when"];
|
||||||
|
}
|
||||||
|
7 [label="Exit block"];
|
||||||
|
}
|
||||||
|
8 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
subgraph cluster_3 {
|
|
||||||
color=red
|
|
||||||
7 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter block"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter when"];
|
|
||||||
10 [label="Access variable R|<local>/x|"];
|
|
||||||
11 [label="Synthetic else branch"];
|
|
||||||
12 [label="Exit when"];
|
|
||||||
}
|
|
||||||
13 [label="Exit block"];
|
|
||||||
}
|
|
||||||
14 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter when"];
|
||||||
|
12 [label="Access variable R|<local>/x|"];
|
||||||
|
13 [label="Synthetic else branch"];
|
||||||
|
14 [label="Exit when"];
|
||||||
|
}
|
||||||
|
15 [label="Exit block"];
|
||||||
|
}
|
||||||
|
16 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
|
14 -> {15};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
15 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
16 [label="Enter block"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter when"];
|
|
||||||
18 [label="Access variable R|<local>/x|"];
|
|
||||||
19 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
|
||||||
20 [label="Synthetic else branch"];
|
|
||||||
21 [label="Exit when"];
|
|
||||||
}
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
17 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter block"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter when"];
|
||||||
|
20 [label="Access variable R|<local>/x|"];
|
||||||
|
21 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||||
|
22 [label="Synthetic else branch"];
|
||||||
|
23 [label="Exit when"];
|
||||||
|
}
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
|
23 -> {24};
|
||||||
|
24 -> {25};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1019
-1012
File diff suppressed because it is too large
Load Diff
+634
-627
File diff suppressed because it is too large
Load Diff
+287
-280
@@ -5,331 +5,336 @@ digraph flowFromInplaceLambda3_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function unknown" style="filled" fillcolor=red];
|
0 [label="Enter file flowFromInplaceLambda3.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file flowFromInplaceLambda3.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter block"];
|
color=red
|
||||||
3 [label="Exit block"];
|
2 [label="Enter function unknown" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
4 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
5 [label="Exit block"];
|
3 [label="Enter block"];
|
||||||
}
|
subgraph cluster_3 {
|
||||||
6 [label="Exit function unknown" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
7 [label="Exit block"];
|
||||||
|
}
|
||||||
|
8 [label="Exit function unknown" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
subgraph cluster_3 {
|
|
||||||
color=red
|
|
||||||
7 [label="Enter function atLeastOnce" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter block"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Exit block"];
|
|
||||||
}
|
|
||||||
11 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
12 [label="Exit block"];
|
|
||||||
}
|
|
||||||
13 [label="Exit function atLeastOnce" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function atLeastOnce" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
12 [label="Exit block"];
|
||||||
|
}
|
||||||
|
13 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit function atLeastOnce" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
14 [label="Enter function exactlyOnce" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
15 [label="Enter block"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
16 [label="Enter block"];
|
|
||||||
17 [label="Exit block"];
|
|
||||||
}
|
|
||||||
18 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
19 [label="Exit block"];
|
|
||||||
}
|
|
||||||
20 [label="Exit function exactlyOnce" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter function exactlyOnce" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter block"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter block"];
|
||||||
|
19 [label="Exit block"];
|
||||||
|
}
|
||||||
|
20 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
21 [label="Exit block"];
|
||||||
|
}
|
||||||
|
22 [label="Exit function exactlyOnce" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
|
20 -> {21};
|
||||||
subgraph cluster_9 {
|
|
||||||
color=red
|
|
||||||
21 [label="Enter function atMostOnce" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
22 [label="Enter block"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter block"];
|
|
||||||
24 [label="Exit block"];
|
|
||||||
}
|
|
||||||
25 [label="Exit block"];
|
|
||||||
}
|
|
||||||
26 [label="Exit function atMostOnce" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=red
|
||||||
|
23 [label="Enter function atMostOnce" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter block"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Exit block"];
|
||||||
|
}
|
||||||
|
27 [label="Exit block"];
|
||||||
|
}
|
||||||
|
28 [label="Exit function atMostOnce" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
|
26 -> {27};
|
||||||
subgraph cluster_12 {
|
|
||||||
color=red
|
|
||||||
27 [label="Enter function test1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
28 [label="Enter block"];
|
|
||||||
29 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
|
||||||
30 [label="Const: String()"];
|
|
||||||
31 [label="Assignment: R|<local>/x|"];
|
|
||||||
32 [label="Access variable R|<local>/x|"];
|
|
||||||
33 [label="Smart cast: R|<local>/x|"];
|
|
||||||
34 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
35 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
37 [label="Enter block"];
|
|
||||||
38 [label="Const: Int(1)"];
|
|
||||||
39 [label="Assignment: R|<local>/x|"];
|
|
||||||
40 [label="Exit block"];
|
|
||||||
}
|
|
||||||
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
42 [label="Postponed exit from lambda"];
|
|
||||||
43 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Access variable R|<local>/x|"];
|
|
||||||
45 [label="Smart cast: R|<local>/x|"];
|
|
||||||
46 [label="Access variable <Unresolved name: length>#"];
|
|
||||||
47 [label="Access variable R|<local>/x|"];
|
|
||||||
48 [label="Smart cast: R|<local>/x|"];
|
|
||||||
49 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
|
||||||
50 [label="Exit block"];
|
|
||||||
}
|
|
||||||
51 [label="Exit function test1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=red
|
||||||
|
29 [label="Enter function test1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
30 [label="Enter block"];
|
||||||
|
31 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||||
|
32 [label="Const: String()"];
|
||||||
|
33 [label="Assignment: R|<local>/x|"];
|
||||||
|
34 [label="Access variable R|<local>/x|"];
|
||||||
|
35 [label="Smart cast: R|<local>/x|"];
|
||||||
|
36 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
37 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
38 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
39 [label="Enter block"];
|
||||||
|
40 [label="Const: Int(1)"];
|
||||||
|
41 [label="Assignment: R|<local>/x|"];
|
||||||
|
42 [label="Exit block"];
|
||||||
|
}
|
||||||
|
43 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
44 [label="Postponed exit from lambda"];
|
||||||
|
45 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Access variable R|<local>/x|"];
|
||||||
|
47 [label="Smart cast: R|<local>/x|"];
|
||||||
|
48 [label="Access variable <Unresolved name: length>#"];
|
||||||
|
49 [label="Access variable R|<local>/x|"];
|
||||||
|
50 [label="Smart cast: R|<local>/x|"];
|
||||||
|
51 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
||||||
|
52 [label="Exit block"];
|
||||||
|
}
|
||||||
|
53 [label="Exit function test1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36 42 43};
|
35 -> {36};
|
||||||
35 -> {36} [style=dashed];
|
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38 44 45};
|
||||||
|
37 -> {38} [style=dashed];
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
42 -> {35} [color=green style=dashed];
|
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
|
44 -> {37} [color=green style=dashed];
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
|
51 -> {52};
|
||||||
subgraph cluster_16 {
|
|
||||||
color=red
|
|
||||||
52 [label="Enter function test1m" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
53 [label="Enter block"];
|
|
||||||
54 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
|
||||||
55 [label="Const: String()"];
|
|
||||||
56 [label="Assignment: R|<local>/x|"];
|
|
||||||
57 [label="Access variable R|<local>/x|"];
|
|
||||||
58 [label="Smart cast: R|<local>/x|"];
|
|
||||||
59 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
60 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
61 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
62 [label="Enter block"];
|
|
||||||
63 [label="Const: String()"];
|
|
||||||
64 [label="Assignment: R|<local>/x|"];
|
|
||||||
65 [label="Exit block"];
|
|
||||||
}
|
|
||||||
66 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
67 [label="Postponed exit from lambda"];
|
|
||||||
68 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
|
||||||
69 [label="Access variable R|<local>/x|"];
|
|
||||||
70 [label="Smart cast: R|<local>/x|"];
|
|
||||||
71 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
72 [label="Exit block"];
|
|
||||||
}
|
|
||||||
73 [label="Exit function test1m" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=red
|
||||||
|
54 [label="Enter function test1m" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
55 [label="Enter block"];
|
||||||
|
56 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||||
|
57 [label="Const: String()"];
|
||||||
|
58 [label="Assignment: R|<local>/x|"];
|
||||||
|
59 [label="Access variable R|<local>/x|"];
|
||||||
|
60 [label="Smart cast: R|<local>/x|"];
|
||||||
|
61 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
62 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
63 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
64 [label="Enter block"];
|
||||||
|
65 [label="Const: String()"];
|
||||||
|
66 [label="Assignment: R|<local>/x|"];
|
||||||
|
67 [label="Exit block"];
|
||||||
|
}
|
||||||
|
68 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
69 [label="Postponed exit from lambda"];
|
||||||
|
70 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
||||||
|
71 [label="Access variable R|<local>/x|"];
|
||||||
|
72 [label="Smart cast: R|<local>/x|"];
|
||||||
|
73 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
74 [label="Exit block"];
|
||||||
|
}
|
||||||
|
75 [label="Exit function test1m" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61 67 68};
|
60 -> {61};
|
||||||
60 -> {61} [style=dashed];
|
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63 69 70};
|
||||||
|
62 -> {63} [style=dashed];
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
67 -> {60} [color=green style=dashed];
|
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
|
69 -> {62} [color=green style=dashed];
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
|
73 -> {74};
|
||||||
subgraph cluster_20 {
|
|
||||||
color=red
|
|
||||||
74 [label="Enter function test2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
75 [label="Enter block"];
|
|
||||||
76 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
|
||||||
77 [label="Const: String()"];
|
|
||||||
78 [label="Assignment: R|<local>/x|"];
|
|
||||||
79 [label="Access variable R|<local>/x|"];
|
|
||||||
80 [label="Smart cast: R|<local>/x|"];
|
|
||||||
81 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
82 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
83 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
84 [label="Enter block"];
|
|
||||||
85 [label="Const: Int(1)"];
|
|
||||||
86 [label="Assignment: R|<local>/x|"];
|
|
||||||
87 [label="Exit block"];
|
|
||||||
}
|
|
||||||
88 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
89 [label="Postponed exit from lambda"];
|
|
||||||
90 [label="Function call: R|/atLeastOnce|(...)" style="filled" fillcolor=yellow];
|
|
||||||
91 [label="Access variable R|<local>/x|"];
|
|
||||||
92 [label="Smart cast: R|<local>/x|"];
|
|
||||||
93 [label="Access variable <Unresolved name: length>#"];
|
|
||||||
94 [label="Access variable R|<local>/x|"];
|
|
||||||
95 [label="Smart cast: R|<local>/x|"];
|
|
||||||
96 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
97 [label="Exit block"];
|
|
||||||
}
|
|
||||||
98 [label="Exit function test2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=red
|
||||||
|
76 [label="Enter function test2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
77 [label="Enter block"];
|
||||||
|
78 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||||
|
79 [label="Const: String()"];
|
||||||
|
80 [label="Assignment: R|<local>/x|"];
|
||||||
|
81 [label="Access variable R|<local>/x|"];
|
||||||
|
82 [label="Smart cast: R|<local>/x|"];
|
||||||
|
83 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
84 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
85 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
86 [label="Enter block"];
|
||||||
|
87 [label="Const: Int(1)"];
|
||||||
|
88 [label="Assignment: R|<local>/x|"];
|
||||||
|
89 [label="Exit block"];
|
||||||
|
}
|
||||||
|
90 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
91 [label="Postponed exit from lambda"];
|
||||||
|
92 [label="Function call: R|/atLeastOnce|(...)" style="filled" fillcolor=yellow];
|
||||||
|
93 [label="Access variable R|<local>/x|"];
|
||||||
|
94 [label="Smart cast: R|<local>/x|"];
|
||||||
|
95 [label="Access variable <Unresolved name: length>#"];
|
||||||
|
96 [label="Access variable R|<local>/x|"];
|
||||||
|
97 [label="Smart cast: R|<local>/x|"];
|
||||||
|
98 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
99 [label="Exit block"];
|
||||||
|
}
|
||||||
|
100 [label="Exit function test2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83 90};
|
82 -> {83};
|
||||||
82 -> {89} [style=dotted];
|
|
||||||
82 -> {83} [style=dashed];
|
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85 92};
|
||||||
|
84 -> {91} [style=dotted];
|
||||||
|
84 -> {85} [style=dashed];
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
89 -> {82} [color=green style=dashed];
|
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
|
91 -> {84} [color=green style=dashed];
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
|
98 -> {99};
|
||||||
subgraph cluster_24 {
|
|
||||||
color=red
|
|
||||||
99 [label="Enter function test3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
100 [label="Enter block"];
|
|
||||||
101 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
|
||||||
102 [label="Const: String()"];
|
|
||||||
103 [label="Assignment: R|<local>/x|"];
|
|
||||||
104 [label="Access variable R|<local>/x|"];
|
|
||||||
105 [label="Smart cast: R|<local>/x|"];
|
|
||||||
106 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
107 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
108 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_27 {
|
|
||||||
color=blue
|
|
||||||
109 [label="Enter block"];
|
|
||||||
110 [label="Const: Int(1)"];
|
|
||||||
111 [label="Assignment: R|<local>/x|"];
|
|
||||||
112 [label="Exit block"];
|
|
||||||
}
|
|
||||||
113 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
114 [label="Postponed exit from lambda"];
|
|
||||||
115 [label="Function call: R|/exactlyOnce|(...)" style="filled" fillcolor=yellow];
|
|
||||||
116 [label="Access variable R|<local>/x|"];
|
|
||||||
117 [label="Smart cast: R|<local>/x|"];
|
|
||||||
118 [label="Access variable <Unresolved name: length>#"];
|
|
||||||
119 [label="Access variable R|<local>/x|"];
|
|
||||||
120 [label="Smart cast: R|<local>/x|"];
|
|
||||||
121 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
122 [label="Exit block"];
|
|
||||||
}
|
|
||||||
123 [label="Exit function test3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {101};
|
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=red
|
||||||
|
101 [label="Enter function test3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
102 [label="Enter block"];
|
||||||
|
103 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||||
|
104 [label="Const: String()"];
|
||||||
|
105 [label="Assignment: R|<local>/x|"];
|
||||||
|
106 [label="Access variable R|<local>/x|"];
|
||||||
|
107 [label="Smart cast: R|<local>/x|"];
|
||||||
|
108 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
109 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
110 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_28 {
|
||||||
|
color=blue
|
||||||
|
111 [label="Enter block"];
|
||||||
|
112 [label="Const: Int(1)"];
|
||||||
|
113 [label="Assignment: R|<local>/x|"];
|
||||||
|
114 [label="Exit block"];
|
||||||
|
}
|
||||||
|
115 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
116 [label="Postponed exit from lambda"];
|
||||||
|
117 [label="Function call: R|/exactlyOnce|(...)" style="filled" fillcolor=yellow];
|
||||||
|
118 [label="Access variable R|<local>/x|"];
|
||||||
|
119 [label="Smart cast: R|<local>/x|"];
|
||||||
|
120 [label="Access variable <Unresolved name: length>#"];
|
||||||
|
121 [label="Access variable R|<local>/x|"];
|
||||||
|
122 [label="Smart cast: R|<local>/x|"];
|
||||||
|
123 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
124 [label="Exit block"];
|
||||||
|
}
|
||||||
|
125 [label="Exit function test3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
107 -> {108 115};
|
107 -> {108};
|
||||||
107 -> {114} [style=dotted];
|
|
||||||
107 -> {108} [style=dashed];
|
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110 117};
|
||||||
|
109 -> {116} [style=dotted];
|
||||||
|
109 -> {110} [style=dashed];
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
@@ -343,56 +348,56 @@ digraph flowFromInplaceLambda3_kt {
|
|||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
|
123 -> {124};
|
||||||
subgraph cluster_28 {
|
|
||||||
color=red
|
|
||||||
124 [label="Enter function test4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
125 [label="Enter block"];
|
|
||||||
126 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
|
||||||
127 [label="Const: String()"];
|
|
||||||
128 [label="Assignment: R|<local>/x|"];
|
|
||||||
129 [label="Access variable R|<local>/x|"];
|
|
||||||
130 [label="Smart cast: R|<local>/x|"];
|
|
||||||
131 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
132 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
133 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_31 {
|
|
||||||
color=blue
|
|
||||||
134 [label="Enter block"];
|
|
||||||
135 [label="Const: Int(1)"];
|
|
||||||
136 [label="Assignment: R|<local>/x|"];
|
|
||||||
137 [label="Exit block"];
|
|
||||||
}
|
|
||||||
138 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
139 [label="Postponed exit from lambda"];
|
|
||||||
140 [label="Function call: R|/atMostOnce|(...)" style="filled" fillcolor=yellow];
|
|
||||||
141 [label="Access variable R|<local>/x|"];
|
|
||||||
142 [label="Smart cast: R|<local>/x|"];
|
|
||||||
143 [label="Access variable <Unresolved name: length>#"];
|
|
||||||
144 [label="Access variable R|<local>/x|"];
|
|
||||||
145 [label="Smart cast: R|<local>/x|"];
|
|
||||||
146 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
|
||||||
147 [label="Exit block"];
|
|
||||||
}
|
|
||||||
148 [label="Exit function test4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126};
|
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=red
|
||||||
|
126 [label="Enter function test4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
127 [label="Enter block"];
|
||||||
|
128 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||||
|
129 [label="Const: String()"];
|
||||||
|
130 [label="Assignment: R|<local>/x|"];
|
||||||
|
131 [label="Access variable R|<local>/x|"];
|
||||||
|
132 [label="Smart cast: R|<local>/x|"];
|
||||||
|
133 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
134 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
135 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_32 {
|
||||||
|
color=blue
|
||||||
|
136 [label="Enter block"];
|
||||||
|
137 [label="Const: Int(1)"];
|
||||||
|
138 [label="Assignment: R|<local>/x|"];
|
||||||
|
139 [label="Exit block"];
|
||||||
|
}
|
||||||
|
140 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
141 [label="Postponed exit from lambda"];
|
||||||
|
142 [label="Function call: R|/atMostOnce|(...)" style="filled" fillcolor=yellow];
|
||||||
|
143 [label="Access variable R|<local>/x|"];
|
||||||
|
144 [label="Smart cast: R|<local>/x|"];
|
||||||
|
145 [label="Access variable <Unresolved name: length>#"];
|
||||||
|
146 [label="Access variable R|<local>/x|"];
|
||||||
|
147 [label="Smart cast: R|<local>/x|"];
|
||||||
|
148 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
||||||
|
149 [label="Exit block"];
|
||||||
|
}
|
||||||
|
150 [label="Exit function test4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {129};
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133 139 140};
|
132 -> {133};
|
||||||
132 -> {133} [style=dashed];
|
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
134 -> {135};
|
134 -> {135 141 142};
|
||||||
|
134 -> {135} [style=dashed];
|
||||||
135 -> {136};
|
135 -> {136};
|
||||||
136 -> {137};
|
136 -> {137};
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
@@ -406,5 +411,7 @@ digraph flowFromInplaceLambda3_kt {
|
|||||||
145 -> {146};
|
145 -> {146};
|
||||||
146 -> {147};
|
146 -> {147};
|
||||||
147 -> {148};
|
147 -> {148};
|
||||||
|
148 -> {149};
|
||||||
|
149 -> {150};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+581
-574
File diff suppressed because it is too large
Load Diff
+69
-62
@@ -5,78 +5,83 @@ digraph initBlock_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class Foo" style="filled" fillcolor=red];
|
0 [label="Enter file initBlock.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file initBlock.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter init block" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
2 [label="Enter block"];
|
|
||||||
3 [label="Const: Int(1)"];
|
|
||||||
4 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
5 [label="Exit block"];
|
|
||||||
}
|
|
||||||
6 [label="Exit init block" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
7 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
8 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
9 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
10 [label="Exit class Foo" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {10} [style=dotted];
|
|
||||||
0 -> {1 7} [style=dashed];
|
subgraph cluster_1 {
|
||||||
1 -> {2};
|
color=red
|
||||||
2 -> {3};
|
2 [label="Enter class Foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
|
color=blue
|
||||||
|
3 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=blue
|
||||||
|
4 [label="Enter block"];
|
||||||
|
5 [label="Const: Int(1)"];
|
||||||
|
6 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
7 [label="Exit block"];
|
||||||
|
}
|
||||||
|
8 [label="Exit init block" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
10 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
12 [label="Exit class Foo" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {12} [style=dotted];
|
||||||
|
2 -> {3 9} [style=dashed];
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7} [color=green];
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9} [color=green];
|
||||||
9 -> {10} [color=green];
|
9 -> {10};
|
||||||
|
10 -> {11};
|
||||||
subgraph cluster_4 {
|
|
||||||
color=red
|
|
||||||
11 [label="Enter class Bar" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter init block" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
13 [label="Enter block"];
|
|
||||||
14 [label="Const: Int(1)"];
|
|
||||||
15 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
16 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
17 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
18 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
19 [label="Const: Int(2)" style="filled" fillcolor=gray];
|
|
||||||
20 [label="Variable declaration: lval y: R|kotlin/Int|" style="filled" fillcolor=gray];
|
|
||||||
21 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
22 [label="Exit init block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter function <init>" style="filled" fillcolor=gray];
|
|
||||||
24 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
|
||||||
25 [label="Exit function <init>" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
26 [label="Exit class Bar" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
11 -> {12} [color=green];
|
11 -> {12} [color=green];
|
||||||
11 -> {26} [style=dotted];
|
|
||||||
11 -> {12 23} [style=dashed];
|
subgraph cluster_5 {
|
||||||
12 -> {13};
|
color=red
|
||||||
13 -> {14};
|
13 [label="Enter class Bar" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
14 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
15 [label="Enter block"];
|
||||||
|
16 [label="Const: Int(1)"];
|
||||||
|
17 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
18 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
19 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
20 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
21 [label="Const: Int(2)" style="filled" fillcolor=gray];
|
||||||
|
22 [label="Variable declaration: lval y: R|kotlin/Int|" style="filled" fillcolor=gray];
|
||||||
|
23 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
24 [label="Exit init block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||||
|
26 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||||
|
27 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
28 [label="Exit class Bar" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
13 -> {14} [color=green];
|
||||||
|
13 -> {28} [style=dotted];
|
||||||
|
13 -> {14 25} [style=dashed];
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18} [style=dotted];
|
17 -> {18};
|
||||||
18 -> {19} [style=dotted];
|
18 -> {19};
|
||||||
19 -> {20} [style=dotted];
|
19 -> {20} [style=dotted];
|
||||||
20 -> {21} [style=dotted];
|
20 -> {21} [style=dotted];
|
||||||
21 -> {22} [style=dotted];
|
21 -> {22} [style=dotted];
|
||||||
@@ -84,5 +89,7 @@ digraph initBlock_kt {
|
|||||||
23 -> {24} [style=dotted];
|
23 -> {24} [style=dotted];
|
||||||
24 -> {25} [style=dotted];
|
24 -> {25} [style=dotted];
|
||||||
25 -> {26} [style=dotted];
|
25 -> {26} [style=dotted];
|
||||||
|
26 -> {27} [style=dotted];
|
||||||
|
27 -> {28} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+62
-55
@@ -5,73 +5,78 @@ digraph initBlockAndInPlaceLambda_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class B" style="filled" fillcolor=red];
|
0 [label="Enter file initBlockAndInPlaceLambda.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class B" style="filled" fillcolor=red];
|
1 [label="Exit file initBlockAndInPlaceLambda.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter class A" style="filled" fillcolor=red];
|
2 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
3 [label="Exit class A" style="filled" fillcolor=red];
|
3 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3} [color=green];
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter class C" style="filled" fillcolor=red];
|
4 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
5 [label="Enter init block" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
6 [label="Enter block"];
|
|
||||||
7 [label="Access variable R|<local>/a|"];
|
|
||||||
8 [label="Access variable R|/A.b|"];
|
|
||||||
9 [label="Enter safe call"];
|
|
||||||
10 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
11 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter block"];
|
|
||||||
13 [label="Access variable R|<local>/a|"];
|
|
||||||
14 [label="Access variable R|<local>/it|"];
|
|
||||||
15 [label="Function call: R|/C.C|(...)" style="filled" fillcolor=yellow];
|
|
||||||
16 [label="Exit block"];
|
|
||||||
}
|
|
||||||
17 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
18 [label="Postponed exit from lambda"];
|
|
||||||
19 [label="Function call: $subj$.R|kotlin/let|<R|B|, R|C|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
20 [label="Exit safe call"];
|
|
||||||
21 [label="Variable declaration: lval c: R|C?|"];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Exit init block" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
24 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
25 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
27 [label="Exit class C" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
4 -> {5} [color=green];
|
4 -> {5} [color=green];
|
||||||
4 -> {27} [style=dotted];
|
|
||||||
4 -> {5 24} [style=dashed];
|
subgraph cluster_3 {
|
||||||
5 -> {6};
|
color=red
|
||||||
6 -> {7};
|
6 [label="Enter class C" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter block"];
|
||||||
|
9 [label="Access variable R|<local>/a|"];
|
||||||
|
10 [label="Access variable R|/A.b|"];
|
||||||
|
11 [label="Enter safe call"];
|
||||||
|
12 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
13 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
14 [label="Enter block"];
|
||||||
|
15 [label="Access variable R|<local>/a|"];
|
||||||
|
16 [label="Access variable R|<local>/it|"];
|
||||||
|
17 [label="Function call: R|/C.C|(...)" style="filled" fillcolor=yellow];
|
||||||
|
18 [label="Exit block"];
|
||||||
|
}
|
||||||
|
19 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
20 [label="Postponed exit from lambda"];
|
||||||
|
21 [label="Function call: $subj$.R|kotlin/let|<R|B|, R|C|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
22 [label="Exit safe call"];
|
||||||
|
23 [label="Variable declaration: lval c: R|C?|"];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit init block" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
27 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
29 [label="Exit class C" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
6 -> {7} [color=green];
|
||||||
|
6 -> {29} [style=dotted];
|
||||||
|
6 -> {7 26} [style=dashed];
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9 20};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11 19};
|
10 -> {11 22};
|
||||||
10 -> {18} [style=dotted];
|
|
||||||
10 -> {11} [style=dashed];
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13 21};
|
||||||
|
12 -> {20} [style=dotted];
|
||||||
|
12 -> {13} [style=dashed];
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
@@ -82,9 +87,11 @@ digraph initBlockAndInPlaceLambda_kt {
|
|||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24} [color=green];
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26} [color=green];
|
||||||
26 -> {27} [color=green];
|
26 -> {27};
|
||||||
|
27 -> {28};
|
||||||
|
28 -> {29} [color=green];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+48
-39
@@ -5,69 +5,78 @@ digraph innerClassInAnonymousObject_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter property" style="filled" fillcolor=red];
|
0 [label="Enter file innerClassInAnonymousObject.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Enter anonymous object"];
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
1 [label="Enter property" style="filled" fillcolor=red];
|
||||||
|
2 [label="Enter anonymous object"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
3 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||||
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
subgraph cluster_3 {
|
||||||
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
5 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
6 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
7 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
6 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
8 [label="Exit anonymous object expression"];
|
||||||
|
9 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
7 [label="Exit anonymous object expression"];
|
10 [label="Exit file innerClassInAnonymousObject.kt" style="filled" fillcolor=red];
|
||||||
8 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter class Nested" style="filled" fillcolor=red];
|
11 [label="Enter class Nested" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter function <init>" style="filled" fillcolor=red];
|
12 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
11 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
13 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
12 [label="Exit function <init>" style="filled" fillcolor=red];
|
14 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
13 [label="Exit class Nested" style="filled" fillcolor=red];
|
15 [label="Exit class Nested" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter function foo" style="filled" fillcolor=red];
|
16 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter block"];
|
17 [label="Enter block"];
|
||||||
16 [label="Exit block"];
|
18 [label="Exit block"];
|
||||||
}
|
}
|
||||||
17 [label="Exit function foo" style="filled" fillcolor=red];
|
19 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
|
0 -> {10} [style=dotted];
|
||||||
|
0 -> {1} [style=dashed];
|
||||||
1 -> {2};
|
1 -> {2};
|
||||||
1 -> {7} [style=dotted];
|
|
||||||
1 -> {2} [style=dashed];
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
2 -> {9} [color=red];
|
2 -> {8} [style=dotted];
|
||||||
2 -> {6} [style=dotted];
|
|
||||||
2 -> {3} [style=dashed];
|
2 -> {3} [style=dashed];
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
|
3 -> {11} [color=red];
|
||||||
|
3 -> {7} [style=dotted];
|
||||||
|
3 -> {4} [style=dashed];
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
6 -> {9} [color=green];
|
|
||||||
6 -> {9} [style=dashed];
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
9 -> {10};
|
7 -> {11} [color=green];
|
||||||
9 -> {14} [color=red];
|
7 -> {11} [style=dashed];
|
||||||
9 -> {13} [style=dotted];
|
8 -> {9};
|
||||||
9 -> {10} [style=dashed];
|
9 -> {10} [color=green];
|
||||||
10 -> {11};
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13} [color=green];
|
11 -> {16} [color=red];
|
||||||
13 -> {14} [color=green];
|
11 -> {15} [style=dotted];
|
||||||
13 -> {14} [style=dashed];
|
11 -> {12} [style=dashed];
|
||||||
14 -> {15};
|
12 -> {13};
|
||||||
15 -> {16};
|
13 -> {14};
|
||||||
|
14 -> {15} [color=green];
|
||||||
|
15 -> {16} [color=green];
|
||||||
|
15 -> {16} [style=dashed];
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
|
17 -> {18};
|
||||||
|
18 -> {19};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+183
-176
@@ -5,188 +5,193 @@ digraph inplaceLambdaInControlFlowExpressions_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function materialize" style="filled" fillcolor=red];
|
0 [label="Enter file inplaceLambdaInControlFlowExpressions.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file inplaceLambdaInControlFlowExpressions.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
2 [label="Const: Null(null)"];
|
|
||||||
3 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
|
|
||||||
4 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
5 [label="Jump: ^materialize Null(null)!!" style="filled" fillcolor=gray];
|
|
||||||
6 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
7 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
8 [label="Exit function materialize" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [style=dotted];
|
|
||||||
4 -> {5} [style=dotted];
|
|
||||||
5 -> {6 8} [style=dotted];
|
|
||||||
6 -> {7} [style=dotted];
|
|
||||||
7 -> {8} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
9 [label="Enter function test_1" style="filled" fillcolor=red];
|
2 [label="Enter function materialize" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
4 [label="Const: Null(null)"];
|
||||||
|
5 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
|
||||||
|
6 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
7 [label="Jump: ^materialize Null(null)!!" style="filled" fillcolor=gray];
|
||||||
|
8 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
9 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
10 [label="Exit function materialize" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [style=dotted];
|
||||||
|
6 -> {7} [style=dotted];
|
||||||
|
7 -> {8 10} [style=dotted];
|
||||||
|
8 -> {9} [style=dotted];
|
||||||
|
9 -> {10} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
11 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
11 [label="Enter when"];
|
13 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter when branch condition "];
|
|
||||||
13 [label="Const: Boolean(true)"];
|
|
||||||
14 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter when branch condition else"];
|
14 [label="Enter when branch condition "];
|
||||||
|
15 [label="Const: Boolean(true)"];
|
||||||
16 [label="Exit when branch condition"];
|
16 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
17 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
18 [label="Enter block"];
|
17 [label="Enter when branch condition else"];
|
||||||
19 [label="Const: String()"];
|
18 [label="Exit when branch condition"];
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
21 [label="Exit when branch result"];
|
19 [label="Enter when branch result"];
|
||||||
22 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
20 [label="Enter block"];
|
||||||
24 [label="Postponed enter to lambda"];
|
21 [label="Const: String()"];
|
||||||
subgraph cluster_9 {
|
22 [label="Exit block"];
|
||||||
color=blue
|
|
||||||
25 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
26 [label="Enter block"];
|
|
||||||
27 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
30 [label="Postponed exit from lambda"];
|
|
||||||
31 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
32 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
33 [label="Exit when branch result"];
|
23 [label="Exit when branch result"];
|
||||||
34 [label="Exit when"];
|
24 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
27 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
28 [label="Enter block"];
|
||||||
|
29 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
32 [label="Postponed exit from lambda"];
|
||||||
|
33 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
34 [label="Exit block"];
|
||||||
|
}
|
||||||
|
35 [label="Exit when branch result"];
|
||||||
|
36 [label="Exit when"];
|
||||||
}
|
}
|
||||||
35 [label="Variable declaration: lval x: R|kotlin/String|"];
|
37 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||||
36 [label="Exit block"];
|
38 [label="Exit block"];
|
||||||
}
|
}
|
||||||
37 [label="Exit function test_1" style="filled" fillcolor=red];
|
39 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15 22};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17 24};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {34};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {36};
|
||||||
24 -> {25 31};
|
24 -> {25};
|
||||||
24 -> {30} [style=dotted];
|
|
||||||
24 -> {25} [style=dashed];
|
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27 33};
|
||||||
|
26 -> {32} [style=dotted];
|
||||||
|
26 -> {27} [style=dashed];
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31} [color=green];
|
30 -> {31};
|
||||||
30 -> {34} [color=red];
|
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33} [color=green];
|
||||||
|
32 -> {36} [color=red];
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
|
37 -> {38};
|
||||||
subgraph cluster_11 {
|
|
||||||
color=red
|
|
||||||
38 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
39 [label="Enter block"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
40 [label="Try expression enter"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Try main block enter"];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
42 [label="Enter block"];
|
|
||||||
43 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
44 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
45 [label="Enter block"];
|
|
||||||
46 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
|
||||||
47 [label="Exit block"];
|
|
||||||
}
|
|
||||||
48 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
49 [label="Postponed exit from lambda"];
|
|
||||||
50 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
51 [label="Exit block"];
|
|
||||||
}
|
|
||||||
52 [label="Try main block exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
53 [label="Catch enter"];
|
|
||||||
54 [label="Variable declaration: e: R|kotlin/Exception|"];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
55 [label="Enter block"];
|
|
||||||
56 [label="Const: String()"];
|
|
||||||
57 [label="Exit block"];
|
|
||||||
}
|
|
||||||
58 [label="Catch exit"];
|
|
||||||
}
|
|
||||||
59 [label="Try expression exit"];
|
|
||||||
}
|
|
||||||
60 [label="Variable declaration: lval x: R|kotlin/String|"];
|
|
||||||
61 [label="Exit block"];
|
|
||||||
}
|
|
||||||
62 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
|
||||||
40 -> {41 53};
|
subgraph cluster_12 {
|
||||||
|
color=red
|
||||||
|
40 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter block"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
42 [label="Try expression enter"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Try main block enter"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter block"];
|
||||||
|
45 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
46 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
47 [label="Enter block"];
|
||||||
|
48 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
||||||
|
49 [label="Exit block"];
|
||||||
|
}
|
||||||
|
50 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
51 [label="Postponed exit from lambda"];
|
||||||
|
52 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
53 [label="Exit block"];
|
||||||
|
}
|
||||||
|
54 [label="Try main block exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
55 [label="Catch enter"];
|
||||||
|
56 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
57 [label="Enter block"];
|
||||||
|
58 [label="Const: String()"];
|
||||||
|
59 [label="Exit block"];
|
||||||
|
}
|
||||||
|
60 [label="Catch exit"];
|
||||||
|
}
|
||||||
|
61 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
62 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||||
|
63 [label="Exit block"];
|
||||||
|
}
|
||||||
|
64 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43 55};
|
||||||
43 -> {44 50};
|
43 -> {44};
|
||||||
43 -> {49} [style=dotted];
|
|
||||||
43 -> {44} [style=dashed];
|
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46 52};
|
||||||
46 -> {47 53};
|
45 -> {51} [style=dotted];
|
||||||
|
45 -> {46} [style=dashed];
|
||||||
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49 55};
|
||||||
49 -> {50} [color=green];
|
49 -> {50};
|
||||||
49 -> {59} [color=red];
|
50 -> {51};
|
||||||
50 -> {51 53};
|
51 -> {52} [color=green];
|
||||||
51 -> {52};
|
51 -> {61} [color=red];
|
||||||
52 -> {53 59};
|
52 -> {53 55};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55 61};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
@@ -194,48 +199,50 @@ digraph inplaceLambdaInControlFlowExpressions_kt {
|
|||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
|
62 -> {63};
|
||||||
subgraph cluster_20 {
|
|
||||||
color=red
|
|
||||||
63 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
64 [label="Enter block"];
|
|
||||||
65 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
66 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
67 [label="Enter block"];
|
|
||||||
68 [label="Function call: R|/materialize|<R|kotlin/String?|>()" style="filled" fillcolor=yellow];
|
|
||||||
69 [label="Exit block"];
|
|
||||||
}
|
|
||||||
70 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
71 [label="Postponed exit from lambda"];
|
|
||||||
72 [label="Function call: R|kotlin/run|<R|kotlin/String?|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
73 [label="Check not null: R|kotlin/run|<R|kotlin/String?|>(...)!!" style="filled" fillcolor=yellow];
|
|
||||||
74 [label="Variable declaration: lval x: R|kotlin/String|"];
|
|
||||||
75 [label="Exit block"];
|
|
||||||
}
|
|
||||||
76 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
|
||||||
65 -> {66 72};
|
subgraph cluster_21 {
|
||||||
65 -> {71} [style=dotted];
|
color=red
|
||||||
65 -> {66} [style=dashed];
|
65 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
66 [label="Enter block"];
|
||||||
|
67 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
68 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
69 [label="Enter block"];
|
||||||
|
70 [label="Function call: R|/materialize|<R|kotlin/String?|>()" style="filled" fillcolor=yellow];
|
||||||
|
71 [label="Exit block"];
|
||||||
|
}
|
||||||
|
72 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
73 [label="Postponed exit from lambda"];
|
||||||
|
74 [label="Function call: R|kotlin/run|<R|kotlin/String?|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
75 [label="Check not null: R|kotlin/run|<R|kotlin/String?|>(...)!!" style="filled" fillcolor=yellow];
|
||||||
|
76 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||||
|
77 [label="Exit block"];
|
||||||
|
}
|
||||||
|
78 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68 74};
|
||||||
|
67 -> {73} [style=dotted];
|
||||||
|
67 -> {68} [style=dashed];
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72} [color=green];
|
71 -> {72};
|
||||||
71 -> {73} [color=red];
|
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74} [color=green];
|
||||||
|
73 -> {75} [color=red];
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
|
76 -> {77};
|
||||||
|
77 -> {78};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+276
-269
@@ -5,156 +5,161 @@ digraph jumps_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file jumps.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file jumps.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Enter when branch condition "];
|
|
||||||
4 [label="Access variable R|<local>/x|"];
|
|
||||||
5 [label="Const: Null(null)"];
|
|
||||||
6 [label="Equality operator =="];
|
|
||||||
7 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter when branch condition else"];
|
5 [label="Enter when branch condition "];
|
||||||
|
6 [label="Access variable R|<local>/x|"];
|
||||||
|
7 [label="Const: Null(null)"];
|
||||||
|
8 [label="Equality operator =="];
|
||||||
9 [label="Exit when branch condition"];
|
9 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
10 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
11 [label="Enter block"];
|
10 [label="Enter when branch condition else"];
|
||||||
12 [label="Access variable R|<local>/x|"];
|
11 [label="Exit when branch condition"];
|
||||||
13 [label="Smart cast: R|<local>/x|"];
|
|
||||||
14 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
15 [label="Exit when branch result"];
|
12 [label="Enter when branch result"];
|
||||||
16 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
17 [label="Enter block"];
|
13 [label="Enter block"];
|
||||||
18 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
14 [label="Access variable R|<local>/x|"];
|
||||||
19 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
15 [label="Smart cast: R|<local>/x|"];
|
||||||
20 [label="Stub" style="filled" fillcolor=gray];
|
16 [label="Exit block"];
|
||||||
21 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
22 [label="Exit when branch result" style="filled" fillcolor=gray];
|
17 [label="Exit when branch result"];
|
||||||
23 [label="Exit when"];
|
18 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter block"];
|
||||||
|
20 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
21 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
22 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
23 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
24 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
25 [label="Exit when"];
|
||||||
}
|
}
|
||||||
24 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
26 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||||
25 [label="Access variable R|<local>/y|"];
|
27 [label="Access variable R|<local>/y|"];
|
||||||
26 [label="Function call: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
28 [label="Function call: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
27 [label="Access variable R|<local>/x|"];
|
29 [label="Access variable R|<local>/x|"];
|
||||||
28 [label="Smart cast: R|<local>/x|"];
|
30 [label="Smart cast: R|<local>/x|"];
|
||||||
29 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
31 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
30 [label="Exit block"];
|
32 [label="Exit block"];
|
||||||
}
|
}
|
||||||
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
33 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 16};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 18};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {23};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {25};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20} [style=dotted];
|
19 -> {20};
|
||||||
20 -> {21} [style=dotted];
|
20 -> {21};
|
||||||
21 -> {22} [style=dotted];
|
21 -> {22} [style=dotted];
|
||||||
22 -> {23} [style=dotted];
|
22 -> {23} [style=dotted];
|
||||||
23 -> {24};
|
23 -> {24} [style=dotted];
|
||||||
24 -> {25};
|
24 -> {25} [style=dotted];
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=red
|
color=red
|
||||||
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
34 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
33 [label="Enter block"];
|
35 [label="Enter block"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
34 [label="Enter when"];
|
36 [label="Enter when"];
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter when branch condition "];
|
|
||||||
36 [label="Access variable R|<local>/x|"];
|
|
||||||
37 [label="Const: Null(null)"];
|
|
||||||
38 [label="Equality operator =="];
|
|
||||||
39 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
40 [label="Enter when branch condition else"];
|
37 [label="Enter when branch condition "];
|
||||||
|
38 [label="Access variable R|<local>/x|"];
|
||||||
|
39 [label="Const: Null(null)"];
|
||||||
|
40 [label="Equality operator =="];
|
||||||
41 [label="Exit when branch condition"];
|
41 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
42 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
43 [label="Enter block"];
|
42 [label="Enter when branch condition else"];
|
||||||
44 [label="Access variable R|<local>/x|"];
|
43 [label="Exit when branch condition"];
|
||||||
45 [label="Smart cast: R|<local>/x|"];
|
|
||||||
46 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
47 [label="Exit when branch result"];
|
44 [label="Enter when branch result"];
|
||||||
48 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
49 [label="Enter block"];
|
45 [label="Enter block"];
|
||||||
50 [label="Access variable R|<local>/x|"];
|
46 [label="Access variable R|<local>/x|"];
|
||||||
51 [label="Smart cast: R|<local>/x|"];
|
47 [label="Smart cast: R|<local>/x|"];
|
||||||
52 [label="Exit block"];
|
48 [label="Exit block"];
|
||||||
}
|
}
|
||||||
53 [label="Exit when branch result"];
|
49 [label="Exit when branch result"];
|
||||||
54 [label="Exit when"];
|
50 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
51 [label="Enter block"];
|
||||||
|
52 [label="Access variable R|<local>/x|"];
|
||||||
|
53 [label="Smart cast: R|<local>/x|"];
|
||||||
|
54 [label="Exit block"];
|
||||||
|
}
|
||||||
|
55 [label="Exit when branch result"];
|
||||||
|
56 [label="Exit when"];
|
||||||
}
|
}
|
||||||
55 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
57 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
||||||
56 [label="Access variable R|<local>/y|"];
|
58 [label="Access variable R|<local>/y|"];
|
||||||
57 [label="Function call: R|<local>/y|.R|kotlin/Int.inc<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#|()" style="filled" fillcolor=yellow];
|
59 [label="Function call: R|<local>/y|.R|kotlin/Int.inc<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#|()" style="filled" fillcolor=yellow];
|
||||||
58 [label="Exit block"];
|
60 [label="Exit block"];
|
||||||
}
|
}
|
||||||
59 [label="Exit function test_2" style="filled" fillcolor=red];
|
61 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
32 -> {33};
|
|
||||||
33 -> {34};
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40 48};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42 50};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {54};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {56};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
@@ -164,260 +169,262 @@ digraph jumps_kt {
|
|||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
|
59 -> {60};
|
||||||
|
60 -> {61};
|
||||||
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_15 {
|
||||||
color=red
|
color=red
|
||||||
60 [label="Enter function test_3" style="filled" fillcolor=red];
|
62 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
61 [label="Enter block"];
|
63 [label="Enter block"];
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
62 [label="Enter while loop"];
|
64 [label="Enter while loop"];
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
63 [label="Enter loop condition"];
|
|
||||||
64 [label="Const: Boolean(true)"];
|
|
||||||
65 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_18 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
66 [label="Enter loop block"];
|
65 [label="Enter loop condition"];
|
||||||
subgraph cluster_19 {
|
66 [label="Const: Boolean(true)"];
|
||||||
color=blue
|
67 [label="Exit loop condition"];
|
||||||
67 [label="Enter block"];
|
|
||||||
68 [label="Access variable R|<local>/x|"];
|
|
||||||
69 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
|
||||||
70 [label="Jump: break@@@[Boolean(true)] "];
|
|
||||||
71 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
72 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
73 [label="Exit loop block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
74 [label="Exit while loop"];
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
68 [label="Enter loop block"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
69 [label="Enter block"];
|
||||||
|
70 [label="Access variable R|<local>/x|"];
|
||||||
|
71 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
||||||
|
72 [label="Jump: break@@@[Boolean(true)] "];
|
||||||
|
73 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
74 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
75 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
76 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
75 [label="Access variable R|<local>/x|"];
|
77 [label="Access variable R|<local>/x|"];
|
||||||
76 [label="Smart cast: R|<local>/x|"];
|
78 [label="Smart cast: R|<local>/x|"];
|
||||||
77 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
79 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
78 [label="Exit block"];
|
80 [label="Exit block"];
|
||||||
}
|
}
|
||||||
79 [label="Exit function test_3" style="filled" fillcolor=red];
|
81 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
60 -> {61};
|
|
||||||
61 -> {62};
|
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
65 -> {74} [style=dotted];
|
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
|
67 -> {76} [style=dotted];
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {74};
|
70 -> {71};
|
||||||
70 -> {71} [style=dotted];
|
71 -> {72};
|
||||||
71 -> {72} [style=dotted];
|
72 -> {76};
|
||||||
72 -> {73} [style=dotted];
|
72 -> {73} [style=dotted];
|
||||||
73 -> {63} [color=green style=dotted];
|
73 -> {74} [style=dotted];
|
||||||
74 -> {75};
|
74 -> {75} [style=dotted];
|
||||||
75 -> {76};
|
75 -> {65} [color=green style=dotted];
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
|
79 -> {80};
|
||||||
subgraph cluster_20 {
|
|
||||||
color=red
|
|
||||||
80 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
81 [label="Enter block"];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
82 [label="Enter do-while loop"];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
83 [label="Enter loop block"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
84 [label="Enter block"];
|
|
||||||
85 [label="Access variable R|<local>/x|"];
|
|
||||||
86 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
|
||||||
87 [label="Jump: break@@@[Boolean(true)] "];
|
|
||||||
88 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
89 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
90 [label="Exit loop block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
91 [label="Enter loop condition" style="filled" fillcolor=gray];
|
|
||||||
92 [label="Const: Boolean(true)" style="filled" fillcolor=gray];
|
|
||||||
93 [label="Exit loop condition" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
94 [label="Exit do-while loop"];
|
|
||||||
}
|
|
||||||
95 [label="Access variable R|<local>/x|"];
|
|
||||||
96 [label="Smart cast: R|<local>/x|"];
|
|
||||||
97 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
98 [label="Exit block"];
|
|
||||||
}
|
|
||||||
99 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=red
|
||||||
|
82 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
83 [label="Enter block"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
84 [label="Enter do-while loop"];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
85 [label="Enter loop block"];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
86 [label="Enter block"];
|
||||||
|
87 [label="Access variable R|<local>/x|"];
|
||||||
|
88 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
||||||
|
89 [label="Jump: break@@@[Boolean(true)] "];
|
||||||
|
90 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
91 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
92 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
93 [label="Enter loop condition" style="filled" fillcolor=gray];
|
||||||
|
94 [label="Const: Boolean(true)" style="filled" fillcolor=gray];
|
||||||
|
95 [label="Exit loop condition" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
96 [label="Exit do-while loop"];
|
||||||
|
}
|
||||||
|
97 [label="Access variable R|<local>/x|"];
|
||||||
|
98 [label="Smart cast: R|<local>/x|"];
|
||||||
|
99 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
100 [label="Exit block"];
|
||||||
|
}
|
||||||
|
101 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {94};
|
87 -> {88};
|
||||||
87 -> {88} [style=dotted];
|
88 -> {89};
|
||||||
88 -> {89} [style=dotted];
|
89 -> {96};
|
||||||
89 -> {90} [style=dotted];
|
89 -> {90} [style=dotted];
|
||||||
90 -> {91} [style=dotted];
|
90 -> {91} [style=dotted];
|
||||||
91 -> {92} [style=dotted];
|
91 -> {92} [style=dotted];
|
||||||
92 -> {93} [style=dotted];
|
92 -> {93} [style=dotted];
|
||||||
93 -> {83} [color=green style=dotted];
|
|
||||||
93 -> {94} [style=dotted];
|
93 -> {94} [style=dotted];
|
||||||
94 -> {95};
|
94 -> {95} [style=dotted];
|
||||||
95 -> {96};
|
95 -> {85} [color=green style=dotted];
|
||||||
|
95 -> {96} [style=dotted];
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
|
99 -> {100};
|
||||||
|
100 -> {101};
|
||||||
|
|
||||||
subgraph cluster_26 {
|
subgraph cluster_27 {
|
||||||
color=red
|
color=red
|
||||||
100 [label="Enter function test_5" style="filled" fillcolor=red];
|
102 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
101 [label="Enter block"];
|
103 [label="Enter block"];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
102 [label="Enter while loop"];
|
104 [label="Enter while loop"];
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
103 [label="Enter loop condition"];
|
|
||||||
104 [label="Access variable R|<local>/b|"];
|
|
||||||
105 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_30 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
106 [label="Enter loop block"];
|
105 [label="Enter loop condition"];
|
||||||
subgraph cluster_31 {
|
106 [label="Access variable R|<local>/b|"];
|
||||||
|
107 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
108 [label="Enter loop block"];
|
||||||
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
107 [label="Enter block"];
|
109 [label="Enter block"];
|
||||||
subgraph cluster_32 {
|
subgraph cluster_33 {
|
||||||
color=blue
|
color=blue
|
||||||
108 [label="Enter when"];
|
110 [label="Enter when"];
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
109 [label="Enter when branch condition "];
|
|
||||||
110 [label="Access variable R|<local>/b|"];
|
|
||||||
111 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
112 [label="Synthetic else branch"];
|
|
||||||
113 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_34 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
114 [label="Enter block"];
|
111 [label="Enter when branch condition "];
|
||||||
115 [label="Jump: continue@@@[R|<local>/b|] "];
|
112 [label="Access variable R|<local>/b|"];
|
||||||
116 [label="Stub" style="filled" fillcolor=gray];
|
113 [label="Exit when branch condition"];
|
||||||
117 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
118 [label="Exit when branch result" style="filled" fillcolor=gray];
|
114 [label="Synthetic else branch"];
|
||||||
119 [label="Exit when"];
|
115 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=blue
|
||||||
|
116 [label="Enter block"];
|
||||||
|
117 [label="Jump: continue@@@[R|<local>/b|] "];
|
||||||
|
118 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
119 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
120 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
121 [label="Exit when"];
|
||||||
}
|
}
|
||||||
120 [label="Exit block"];
|
122 [label="Exit block"];
|
||||||
}
|
}
|
||||||
121 [label="Exit loop block"];
|
123 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
122 [label="Exit while loop"];
|
124 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
123 [label="Exit block"];
|
125 [label="Exit block"];
|
||||||
}
|
}
|
||||||
124 [label="Exit function test_5" style="filled" fillcolor=red];
|
126 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
100 -> {101};
|
|
||||||
101 -> {102};
|
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {106 122};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
107 -> {108};
|
107 -> {108 124};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112 113};
|
111 -> {112};
|
||||||
112 -> {119};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114 115};
|
||||||
114 -> {115};
|
114 -> {121};
|
||||||
115 -> {103} [color=green style=dashed];
|
115 -> {116};
|
||||||
115 -> {116} [style=dotted];
|
116 -> {117};
|
||||||
116 -> {117} [style=dotted];
|
117 -> {105} [color=green style=dashed];
|
||||||
117 -> {118} [style=dotted];
|
117 -> {118} [style=dotted];
|
||||||
118 -> {119} [style=dotted];
|
118 -> {119} [style=dotted];
|
||||||
119 -> {120};
|
119 -> {120} [style=dotted];
|
||||||
120 -> {121};
|
120 -> {121} [style=dotted];
|
||||||
121 -> {103} [color=green style=dashed];
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
123 -> {124};
|
123 -> {105} [color=green style=dashed];
|
||||||
|
124 -> {125};
|
||||||
subgraph cluster_35 {
|
|
||||||
color=red
|
|
||||||
125 [label="Enter function run" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_36 {
|
|
||||||
color=blue
|
|
||||||
126 [label="Enter block"];
|
|
||||||
127 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
128 [label="Exit block"];
|
|
||||||
}
|
|
||||||
129 [label="Exit function run" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127};
|
|
||||||
|
subgraph cluster_36 {
|
||||||
|
color=red
|
||||||
|
127 [label="Enter function run" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_37 {
|
||||||
|
color=blue
|
||||||
|
128 [label="Enter block"];
|
||||||
|
129 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
130 [label="Exit block"];
|
||||||
|
}
|
||||||
|
131 [label="Exit function run" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {129};
|
||||||
|
129 -> {130};
|
||||||
subgraph cluster_37 {
|
|
||||||
color=red
|
|
||||||
130 [label="Enter function test_6" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_38 {
|
|
||||||
color=blue
|
|
||||||
131 [label="Enter block"];
|
|
||||||
132 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_39 {
|
|
||||||
color=blue
|
|
||||||
133 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_40 {
|
|
||||||
color=blue
|
|
||||||
134 [label="Enter block"];
|
|
||||||
135 [label="Jump: ^@run Unit"];
|
|
||||||
136 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
137 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
138 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
139 [label="Postponed exit from lambda"];
|
|
||||||
140 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
|
||||||
141 [label="Exit block"];
|
|
||||||
}
|
|
||||||
142 [label="Exit function test_6" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
|
||||||
132 -> {133 139 140};
|
subgraph cluster_38 {
|
||||||
132 -> {133} [style=dashed];
|
color=red
|
||||||
|
132 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_39 {
|
||||||
|
color=blue
|
||||||
|
133 [label="Enter block"];
|
||||||
|
134 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_40 {
|
||||||
|
color=blue
|
||||||
|
135 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_41 {
|
||||||
|
color=blue
|
||||||
|
136 [label="Enter block"];
|
||||||
|
137 [label="Jump: ^@run Unit"];
|
||||||
|
138 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
139 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
140 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
141 [label="Postponed exit from lambda"];
|
||||||
|
142 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||||
|
143 [label="Exit block"];
|
||||||
|
}
|
||||||
|
144 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
134 -> {135};
|
134 -> {135 141 142};
|
||||||
135 -> {138};
|
134 -> {135} [style=dashed];
|
||||||
135 -> {136} [style=dotted];
|
135 -> {136};
|
||||||
136 -> {137} [style=dotted];
|
136 -> {137};
|
||||||
|
137 -> {140};
|
||||||
137 -> {138} [style=dotted];
|
137 -> {138} [style=dotted];
|
||||||
138 -> {139};
|
138 -> {139} [style=dotted];
|
||||||
139 -> {140};
|
139 -> {140} [style=dotted];
|
||||||
139 -> {132} [color=green style=dashed];
|
|
||||||
140 -> {141};
|
140 -> {141};
|
||||||
141 -> {142};
|
141 -> {142};
|
||||||
|
141 -> {134} [color=green style=dashed];
|
||||||
|
142 -> {143};
|
||||||
|
143 -> {144};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+64
-55
@@ -5,92 +5,101 @@ digraph lambdaAsReturnOfLambda_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter property" style="filled" fillcolor=red];
|
0 [label="Enter file lambdaAsReturnOfLambda.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
1 [label="Enter property" style="filled" fillcolor=red];
|
||||||
|
2 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
3 [label="Enter block"];
|
3 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
4 [label="Exit anonymous function expression"];
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit anonymous function expression"];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter block"];
|
6 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
7 [label="Access variable R|<local>/foo|"];
|
subgraph cluster_5 {
|
||||||
8 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
9 [label="Exit block"];
|
7 [label="Enter block"];
|
||||||
|
8 [label="Access variable R|<local>/foo|"];
|
||||||
|
9 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
|
10 [label="Exit block"];
|
||||||
|
}
|
||||||
|
11 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
10 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
12 [label="Jump: ^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| <inline=Unknown> {
|
||||||
}
|
|
||||||
11 [label="Jump: ^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| <inline=Unknown> {
|
|
||||||
R|/bar|(R|<local>/foo|)
|
R|/bar|(R|<local>/foo|)
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
12 [label="Stub" style="filled" fillcolor=gray];
|
13 [label="Stub" style="filled" fillcolor=gray];
|
||||||
13 [label="Exit block" style="filled" fillcolor=gray];
|
14 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
15 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
14 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
16 [label="Postponed exit from lambda"];
|
||||||
|
17 [label="Function call: R|/run|<R|(kotlin/String) -> kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
18 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
15 [label="Postponed exit from lambda"];
|
19 [label="Exit file lambdaAsReturnOfLambda.kt" style="filled" fillcolor=red];
|
||||||
16 [label="Function call: R|/run|<R|(kotlin/String) -> kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
17 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2 15 16};
|
0 -> {19} [style=dotted];
|
||||||
1 -> {2} [style=dashed];
|
0 -> {1} [style=dashed];
|
||||||
2 -> {3};
|
1 -> {2};
|
||||||
|
2 -> {3 16 17};
|
||||||
|
2 -> {3} [style=dashed];
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5 11};
|
4 -> {5};
|
||||||
4 -> {5} [style=dashed];
|
5 -> {6 12};
|
||||||
5 -> {6};
|
5 -> {6} [style=dashed];
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
11 -> {14};
|
10 -> {11};
|
||||||
11 -> {12} [style=dotted];
|
12 -> {15};
|
||||||
12 -> {13} [style=dotted];
|
12 -> {13} [style=dotted];
|
||||||
13 -> {14} [style=dotted];
|
13 -> {14} [style=dotted];
|
||||||
15 -> {16};
|
14 -> {15} [style=dotted];
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
|
17 -> {18};
|
||||||
|
18 -> {19} [color=green];
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=red
|
color=red
|
||||||
18 [label="Enter function bar" style="filled" fillcolor=red];
|
20 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
19 [label="Enter block"];
|
21 [label="Enter block"];
|
||||||
20 [label="Exit block"];
|
22 [label="Exit block"];
|
||||||
}
|
}
|
||||||
21 [label="Exit function bar" style="filled" fillcolor=red];
|
23 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
18 -> {19};
|
|
||||||
19 -> {20};
|
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
|
21 -> {22};
|
||||||
subgraph cluster_7 {
|
|
||||||
color=red
|
|
||||||
22 [label="Enter function run" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter block"];
|
|
||||||
24 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()" style="filled" fillcolor=yellow];
|
|
||||||
25 [label="Jump: ^run R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()"];
|
|
||||||
26 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
27 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
28 [label="Exit function run" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=red
|
||||||
|
24 [label="Enter function run" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Jump: ^run R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()"];
|
||||||
|
28 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
29 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
30 [label="Exit function run" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {28};
|
25 -> {26};
|
||||||
25 -> {26} [style=dotted];
|
26 -> {27};
|
||||||
26 -> {27} [style=dotted];
|
27 -> {30};
|
||||||
27 -> {28} [style=dotted];
|
27 -> {28} [style=dotted];
|
||||||
|
28 -> {29} [style=dotted];
|
||||||
|
29 -> {30} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+77
-70
@@ -5,109 +5,116 @@ digraph lambdaReturningObject_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class Out" style="filled" fillcolor=red];
|
0 [label="Enter file lambdaReturningObject.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class Out" style="filled" fillcolor=red];
|
1 [label="Exit file lambdaReturningObject.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function bar" style="filled" fillcolor=red];
|
2 [label="Enter class Out" style="filled" fillcolor=red];
|
||||||
subgraph cluster_2 {
|
3 [label="Exit class Out" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
3 [label="Enter block"];
|
|
||||||
4 [label="Exit block"];
|
|
||||||
}
|
|
||||||
5 [label="Exit function bar" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
3 -> {4};
|
|
||||||
4 -> {5};
|
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
6 [label="Enter class IrTypeArgument" style="filled" fillcolor=red];
|
4 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
7 [label="Exit class IrTypeArgument" style="filled" fillcolor=red];
|
subgraph cluster_3 {
|
||||||
|
color=blue
|
||||||
|
5 [label="Enter block"];
|
||||||
|
6 [label="Exit block"];
|
||||||
|
}
|
||||||
|
7 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
6 -> {7} [color=green];
|
4 -> {5};
|
||||||
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter class IrStarProjectionImpl" style="filled" fillcolor=red];
|
8 [label="Enter class IrTypeArgument" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
9 [label="Exit class IrTypeArgument" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
10 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
12 [label="Exit class IrStarProjectionImpl" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
8 -> {9} [color=green];
|
8 -> {9} [color=green];
|
||||||
8 -> {12} [style=dotted];
|
|
||||||
8 -> {9} [style=dashed];
|
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
|
||||||
11 -> {12} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
13 [label="Enter function MyOut" style="filled" fillcolor=red];
|
10 [label="Enter class IrStarProjectionImpl" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter block"];
|
11 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
15 [label="Function call: R|kotlin/TODO|()" style="filled" fillcolor=yellow];
|
12 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
16 [label="Stub" style="filled" fillcolor=gray];
|
13 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
17 [label="Jump: ^MyOut R|kotlin/TODO|()" style="filled" fillcolor=gray];
|
}
|
||||||
|
14 [label="Exit class IrStarProjectionImpl" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
10 -> {11} [color=green];
|
||||||
|
10 -> {14} [style=dotted];
|
||||||
|
10 -> {11} [style=dashed];
|
||||||
|
11 -> {12};
|
||||||
|
12 -> {13};
|
||||||
|
13 -> {14} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
15 [label="Enter function MyOut" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
16 [label="Enter block"];
|
||||||
|
17 [label="Function call: R|kotlin/TODO|()" style="filled" fillcolor=yellow];
|
||||||
18 [label="Stub" style="filled" fillcolor=gray];
|
18 [label="Stub" style="filled" fillcolor=gray];
|
||||||
19 [label="Exit block" style="filled" fillcolor=gray];
|
19 [label="Jump: ^MyOut R|kotlin/TODO|()" style="filled" fillcolor=gray];
|
||||||
|
20 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
21 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
20 [label="Exit function MyOut" style="filled" fillcolor=gray];
|
22 [label="Exit function MyOut" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
13 -> {14};
|
15 -> {16};
|
||||||
14 -> {15};
|
16 -> {17};
|
||||||
15 -> {16} [style=dotted];
|
17 -> {18} [style=dotted];
|
||||||
16 -> {17} [style=dotted];
|
|
||||||
17 -> {18 20} [style=dotted];
|
|
||||||
18 -> {19} [style=dotted];
|
18 -> {19} [style=dotted];
|
||||||
19 -> {20} [style=dotted];
|
19 -> {20 22} [style=dotted];
|
||||||
|
20 -> {21} [style=dotted];
|
||||||
|
21 -> {22} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=red
|
color=red
|
||||||
21 [label="Enter function foo" style="filled" fillcolor=red];
|
23 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
22 [label="Enter block"];
|
24 [label="Enter block"];
|
||||||
23 [label="Postponed enter to lambda"];
|
25 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
24 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
26 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
25 [label="Enter block"];
|
27 [label="Enter block"];
|
||||||
26 [label="Access qualifier /IrStarProjectionImpl"];
|
28 [label="Access qualifier /IrStarProjectionImpl"];
|
||||||
27 [label="Exit block"];
|
29 [label="Exit block"];
|
||||||
}
|
}
|
||||||
28 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
30 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
29 [label="Postponed exit from lambda"];
|
31 [label="Postponed exit from lambda"];
|
||||||
30 [label="Function call: R|/MyOut|<R|IrStarProjectionImpl|>(...)" style="filled" fillcolor=yellow];
|
32 [label="Function call: R|/MyOut|<R|IrStarProjectionImpl|>(...)" style="filled" fillcolor=yellow];
|
||||||
31 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
33 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
32 [label="Exit block"];
|
34 [label="Exit block"];
|
||||||
}
|
}
|
||||||
33 [label="Exit function foo" style="filled" fillcolor=red];
|
35 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
21 -> {22};
|
23 -> {24};
|
||||||
22 -> {23};
|
|
||||||
23 -> {24 29 30};
|
|
||||||
23 -> {24} [style=dashed];
|
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26 31 32};
|
||||||
|
25 -> {26} [style=dashed];
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
29 -> {30} [color=green];
|
28 -> {29};
|
||||||
29 -> {31} [color=red];
|
29 -> {30};
|
||||||
30 -> {31};
|
31 -> {32} [color=green];
|
||||||
31 -> {32};
|
31 -> {33} [color=red];
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
|
33 -> {34};
|
||||||
|
34 -> {35};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+193
-186
@@ -5,285 +5,292 @@ digraph lambdas_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function run" style="filled" fillcolor=red];
|
0 [label="Enter file lambdas.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file lambdas.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit block"];
|
subgraph cluster_1 {
|
||||||
}
|
color=red
|
||||||
4 [label="Exit function run" style="filled" fillcolor=red];
|
2 [label="Enter function run" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
|
color=blue
|
||||||
|
3 [label="Enter block"];
|
||||||
|
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Exit function run" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6};
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter function test_1" style="filled" fillcolor=red];
|
7 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter block"];
|
8 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
7 [label="Enter when"];
|
9 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter when branch condition "];
|
|
||||||
9 [label="Access variable R|<local>/x|"];
|
|
||||||
10 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
|
||||||
11 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
12 [label="Synthetic else branch"];
|
|
||||||
13 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter block"];
|
10 [label="Enter when branch condition "];
|
||||||
15 [label="Postponed enter to lambda"];
|
11 [label="Access variable R|<local>/x|"];
|
||||||
subgraph cluster_7 {
|
12 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
||||||
color=blue
|
13 [label="Exit when branch condition"];
|
||||||
16 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter block"];
|
|
||||||
18 [label="Access variable R|<local>/x|"];
|
|
||||||
19 [label="Smart cast: R|<local>/x|"];
|
|
||||||
20 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
21 [label="Exit block"];
|
|
||||||
}
|
|
||||||
22 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
23 [label="Postponed exit from lambda"];
|
|
||||||
24 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
|
||||||
25 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
26 [label="Exit when branch result"];
|
14 [label="Synthetic else branch"];
|
||||||
27 [label="Exit when"];
|
15 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
16 [label="Enter block"];
|
||||||
|
17 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter block"];
|
||||||
|
20 [label="Access variable R|<local>/x|"];
|
||||||
|
21 [label="Smart cast: R|<local>/x|"];
|
||||||
|
22 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
23 [label="Exit block"];
|
||||||
|
}
|
||||||
|
24 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
25 [label="Postponed exit from lambda"];
|
||||||
|
26 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Exit block"];
|
||||||
|
}
|
||||||
|
28 [label="Exit when branch result"];
|
||||||
|
29 [label="Exit when"];
|
||||||
}
|
}
|
||||||
28 [label="Exit block"];
|
30 [label="Exit block"];
|
||||||
}
|
}
|
||||||
29 [label="Exit function test_1" style="filled" fillcolor=red];
|
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12 13};
|
11 -> {12};
|
||||||
12 -> {27};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 15};
|
||||||
14 -> {15};
|
14 -> {29};
|
||||||
15 -> {16 23 24};
|
15 -> {16};
|
||||||
15 -> {16} [style=dashed];
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18 25 26};
|
||||||
|
17 -> {18} [style=dashed];
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
23 -> {15} [color=green style=dashed];
|
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
|
25 -> {17} [color=green style=dashed];
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
30 [label="Enter function test_2" style="filled" fillcolor=red];
|
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
31 [label="Enter block"];
|
33 [label="Enter block"];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter when"];
|
34 [label="Enter when"];
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter when branch condition "];
|
|
||||||
34 [label="Access variable R|<local>/x|"];
|
|
||||||
35 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
|
||||||
36 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
37 [label="Synthetic else branch"];
|
|
||||||
38 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
39 [label="Enter block"];
|
35 [label="Enter when branch condition "];
|
||||||
40 [label="Exit anonymous function expression"];
|
36 [label="Access variable R|<local>/x|"];
|
||||||
41 [label="Variable declaration: lval lambda: R|() -> kotlin/Int|"];
|
37 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
||||||
42 [label="Exit block"];
|
38 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
43 [label="Exit when branch result"];
|
39 [label="Synthetic else branch"];
|
||||||
44 [label="Exit when"];
|
40 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter block"];
|
||||||
|
42 [label="Exit anonymous function expression"];
|
||||||
|
43 [label="Variable declaration: lval lambda: R|() -> kotlin/Int|"];
|
||||||
|
44 [label="Exit block"];
|
||||||
|
}
|
||||||
|
45 [label="Exit when branch result"];
|
||||||
|
46 [label="Exit when"];
|
||||||
}
|
}
|
||||||
45 [label="Exit block"];
|
47 [label="Exit block"];
|
||||||
}
|
}
|
||||||
46 [label="Exit function test_2" style="filled" fillcolor=red];
|
48 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_14 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
47 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
49 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
48 [label="Enter block"];
|
50 [label="Enter block"];
|
||||||
49 [label="Access variable R|<local>/x|"];
|
51 [label="Access variable R|<local>/x|"];
|
||||||
50 [label="Smart cast: R|<local>/x|"];
|
52 [label="Smart cast: R|<local>/x|"];
|
||||||
51 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
53 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
52 [label="Exit block"];
|
54 [label="Exit block"];
|
||||||
}
|
}
|
||||||
53 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
55 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
30 -> {31};
|
|
||||||
31 -> {32};
|
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37 38};
|
36 -> {37};
|
||||||
37 -> {44};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39 40};
|
||||||
39 -> {40};
|
39 -> {46};
|
||||||
40 -> {41 47};
|
40 -> {41};
|
||||||
40 -> {47} [style=dashed];
|
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43 49};
|
||||||
|
42 -> {49} [style=dashed];
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
|
53 -> {54};
|
||||||
subgraph cluster_16 {
|
|
||||||
color=red
|
|
||||||
54 [label="Enter function getInt" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
55 [label="Enter block"];
|
|
||||||
56 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
57 [label="Const: Int(1)"];
|
|
||||||
58 [label="Jump: ^getInt Int(1)"];
|
|
||||||
59 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
60 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
61 [label="Exit function getInt" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=red
|
||||||
|
56 [label="Enter function getInt" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
57 [label="Enter block"];
|
||||||
|
58 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
59 [label="Const: Int(1)"];
|
||||||
|
60 [label="Jump: ^getInt Int(1)"];
|
||||||
|
61 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
62 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
63 [label="Exit function getInt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {61};
|
58 -> {59};
|
||||||
58 -> {59} [style=dotted];
|
59 -> {60};
|
||||||
59 -> {60} [style=dotted];
|
60 -> {63};
|
||||||
60 -> {61} [style=dotted];
|
60 -> {61} [style=dotted];
|
||||||
|
61 -> {62} [style=dotted];
|
||||||
|
62 -> {63} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=red
|
color=red
|
||||||
62 [label="Enter function test_3" style="filled" fillcolor=red];
|
64 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_19 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
63 [label="Enter block"];
|
65 [label="Enter block"];
|
||||||
64 [label="Postponed enter to lambda"];
|
66 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_20 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
65 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
67 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
66 [label="Enter block"];
|
68 [label="Enter block"];
|
||||||
67 [label="Const: Int(1)"];
|
69 [label="Const: Int(1)"];
|
||||||
68 [label="Jump: ^test_3 Int(1)"];
|
70 [label="Jump: ^test_3 Int(1)"];
|
||||||
69 [label="Stub" style="filled" fillcolor=gray];
|
71 [label="Stub" style="filled" fillcolor=gray];
|
||||||
70 [label="Exit block" style="filled" fillcolor=gray];
|
72 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
71 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
73 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
72 [label="Postponed exit from lambda"];
|
74 [label="Postponed exit from lambda"];
|
||||||
73 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
75 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
||||||
74 [label="Jump: ^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
76 [label="Jump: ^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
||||||
^test_3 Int(1)
|
^test_3 Int(1)
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
75 [label="Stub" style="filled" fillcolor=gray];
|
77 [label="Stub" style="filled" fillcolor=gray];
|
||||||
76 [label="Exit block" style="filled" fillcolor=gray];
|
78 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
77 [label="Exit function test_3" style="filled" fillcolor=red];
|
79 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
62 -> {63};
|
64 -> {65};
|
||||||
63 -> {64};
|
|
||||||
64 -> {65 72 73};
|
|
||||||
64 -> {65} [style=dashed];
|
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67 74 75};
|
||||||
|
66 -> {67} [style=dashed];
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {77};
|
68 -> {69};
|
||||||
68 -> {69} [style=dotted];
|
69 -> {70};
|
||||||
69 -> {70} [style=dotted];
|
70 -> {79};
|
||||||
70 -> {71} [style=dotted];
|
70 -> {71} [style=dotted];
|
||||||
71 -> {72} [style=dotted];
|
71 -> {72} [style=dotted];
|
||||||
72 -> {73};
|
72 -> {73} [style=dotted];
|
||||||
72 -> {64} [color=green style=dashed];
|
73 -> {74} [style=dotted];
|
||||||
73 -> {74};
|
74 -> {75};
|
||||||
74 -> {77};
|
74 -> {66} [color=green style=dashed];
|
||||||
74 -> {75} [style=dotted];
|
75 -> {76};
|
||||||
75 -> {76} [style=dotted];
|
76 -> {79};
|
||||||
76 -> {77} [style=dotted];
|
76 -> {77} [style=dotted];
|
||||||
|
77 -> {78} [style=dotted];
|
||||||
|
78 -> {79} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=red
|
color=red
|
||||||
78 [label="Enter function test_4" style="filled" fillcolor=red];
|
80 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
subgraph cluster_23 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
79 [label="Enter block"];
|
81 [label="Enter block"];
|
||||||
80 [label="Postponed enter to lambda"];
|
82 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_24 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
81 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
83 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
82 [label="Enter block"];
|
84 [label="Enter block"];
|
||||||
83 [label="Const: Int(1)"];
|
85 [label="Const: Int(1)"];
|
||||||
84 [label="Jump: ^test_4 Int(1)"];
|
86 [label="Jump: ^test_4 Int(1)"];
|
||||||
85 [label="Stub" style="filled" fillcolor=gray];
|
87 [label="Stub" style="filled" fillcolor=gray];
|
||||||
86 [label="Exit block" style="filled" fillcolor=gray];
|
88 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
87 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
89 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
88 [label="Postponed exit from lambda"];
|
90 [label="Postponed exit from lambda"];
|
||||||
89 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
91 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
||||||
90 [label="Jump: ^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
92 [label="Jump: ^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
||||||
^test_4 Int(1)
|
^test_4 Int(1)
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
91 [label="Stub" style="filled" fillcolor=gray];
|
93 [label="Stub" style="filled" fillcolor=gray];
|
||||||
92 [label="Exit block" style="filled" fillcolor=gray];
|
94 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
93 [label="Exit function test_4" style="filled" fillcolor=red];
|
95 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
78 -> {79};
|
80 -> {81};
|
||||||
79 -> {80};
|
|
||||||
80 -> {81 88 89};
|
|
||||||
80 -> {81} [style=dashed];
|
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83 90 91};
|
||||||
|
82 -> {83} [style=dashed];
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {93};
|
84 -> {85};
|
||||||
84 -> {85} [style=dotted];
|
85 -> {86};
|
||||||
85 -> {86} [style=dotted];
|
86 -> {95};
|
||||||
86 -> {87} [style=dotted];
|
86 -> {87} [style=dotted];
|
||||||
87 -> {88} [style=dotted];
|
87 -> {88} [style=dotted];
|
||||||
88 -> {89};
|
88 -> {89} [style=dotted];
|
||||||
88 -> {80} [color=green style=dashed];
|
89 -> {90} [style=dotted];
|
||||||
89 -> {90};
|
90 -> {91};
|
||||||
90 -> {93};
|
90 -> {82} [color=green style=dashed];
|
||||||
90 -> {91} [style=dotted];
|
91 -> {92};
|
||||||
91 -> {92} [style=dotted];
|
92 -> {95};
|
||||||
92 -> {93} [style=dotted];
|
92 -> {93} [style=dotted];
|
||||||
|
93 -> {94} [style=dotted];
|
||||||
|
94 -> {95} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+308
-301
@@ -5,180 +5,187 @@ digraph localClassesWithImplicit_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function myRun" style="filled" fillcolor=red];
|
0 [label="Enter file localClassesWithImplicit.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file localClassesWithImplicit.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
2 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Jump: ^myRun R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()"];
|
|
||||||
4 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
5 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
6 [label="Exit function myRun" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {6};
|
|
||||||
3 -> {4} [style=dotted];
|
|
||||||
4 -> {5} [style=dotted];
|
|
||||||
5 -> {6} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
7 [label="Enter function test" style="filled" fillcolor=red];
|
2 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow];
|
||||||
|
5 [label="Jump: ^myRun R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()"];
|
||||||
|
6 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
8 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {8};
|
||||||
|
5 -> {6} [style=dotted];
|
||||||
|
6 -> {7} [style=dotted];
|
||||||
|
7 -> {8} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter when"];
|
11 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
10 [label="Enter when branch condition "];
|
|
||||||
11 [label="Access variable R|<local>/a|"];
|
|
||||||
12 [label="Type operator: (R|<local>/a| !is R|kotlin/String|)"];
|
|
||||||
13 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
14 [label="Synthetic else branch"];
|
|
||||||
15 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter block"];
|
12 [label="Enter when branch condition "];
|
||||||
17 [label="Jump: ^test Unit"];
|
13 [label="Access variable R|<local>/a|"];
|
||||||
18 [label="Stub" style="filled" fillcolor=gray];
|
14 [label="Type operator: (R|<local>/a| !is R|kotlin/String|)"];
|
||||||
19 [label="Exit block" style="filled" fillcolor=gray];
|
15 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
20 [label="Exit when branch result" style="filled" fillcolor=gray];
|
16 [label="Synthetic else branch"];
|
||||||
21 [label="Exit when"];
|
17 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_7 {
|
||||||
22 [label="Local class declaration"];
|
|
||||||
23 [label="Enter anonymous object"];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
24 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
color=blue
|
||||||
25 [label="Enter function <init>" style="filled" fillcolor=red];
|
18 [label="Enter block"];
|
||||||
26 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
19 [label="Jump: ^test Unit"];
|
||||||
27 [label="Exit function <init>" style="filled" fillcolor=red];
|
20 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
21 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
28 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
22 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
23 [label="Exit when"];
|
||||||
}
|
}
|
||||||
29 [label="Exit anonymous object expression"];
|
24 [label="Local class declaration"];
|
||||||
30 [label="Variable declaration: lval x: R|<anonymous>|"];
|
25 [label="Enter anonymous object"];
|
||||||
31 [label="Exit block"];
|
subgraph cluster_8 {
|
||||||
}
|
|
||||||
32 [label="Exit function test" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter function baz" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter block"];
|
|
||||||
35 [label="Const: Int(1)"];
|
|
||||||
36 [label="Jump: ^baz Int(1)"];
|
|
||||||
37 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
38 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
39 [label="Exit function baz" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
40 [label="Enter function bar" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter block"];
|
|
||||||
42 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
color=blue
|
||||||
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
26 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_14 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
44 [label="Enter block"];
|
27 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
45 [label="Access variable R|<local>/a|"];
|
28 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
46 [label="Smart cast: R|<local>/a|"];
|
29 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
47 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
48 [label="Access variable R|<local>/b|"];
|
|
||||||
49 [label="Access variable <Unresolved name: length>#"];
|
|
||||||
50 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.baz|()" style="filled" fillcolor=yellow];
|
|
||||||
51 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
52 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
30 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
53 [label="Postponed exit from lambda"];
|
31 [label="Exit anonymous object expression"];
|
||||||
54 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
32 [label="Variable declaration: lval x: R|<anonymous>|"];
|
||||||
55 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
33 [label="Exit block"];
|
||||||
|
}
|
||||||
|
34 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
35 [label="Enter function baz" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter block"];
|
||||||
|
37 [label="Const: Int(1)"];
|
||||||
|
38 [label="Jump: ^baz Int(1)"];
|
||||||
|
39 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
41 [label="Exit function baz" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
42 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter block"];
|
||||||
|
44 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
45 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
46 [label="Enter block"];
|
||||||
|
47 [label="Access variable R|<local>/a|"];
|
||||||
|
48 [label="Smart cast: R|<local>/a|"];
|
||||||
|
49 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
50 [label="Access variable R|<local>/b|"];
|
||||||
|
51 [label="Access variable <Unresolved name: length>#"];
|
||||||
|
52 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.baz|()" style="filled" fillcolor=yellow];
|
||||||
|
53 [label="Exit block"];
|
||||||
|
}
|
||||||
|
54 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
55 [label="Postponed exit from lambda"];
|
||||||
|
56 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
57 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||||
R|<local>/a|.R|kotlin/String.length|
|
R|<local>/a|.R|kotlin/String.length|
|
||||||
R|<local>/b|.<Unresolved name: length>#
|
R|<local>/b|.<Unresolved name: length>#
|
||||||
^ this@R|/<anonymous>|.R|/<anonymous>.baz|()
|
^ this@R|/<anonymous>|.R|/<anonymous>.baz|()
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
56 [label="Stub" style="filled" fillcolor=gray];
|
58 [label="Stub" style="filled" fillcolor=gray];
|
||||||
57 [label="Exit block" style="filled" fillcolor=gray];
|
59 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
58 [label="Exit function bar" style="filled" fillcolor=red];
|
60 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
59 [label="Enter function foo" style="filled" fillcolor=red];
|
61 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
60 [label="Enter block"];
|
62 [label="Enter block"];
|
||||||
61 [label="Postponed enter to lambda"];
|
63 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
62 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
64 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
63 [label="Enter block"];
|
65 [label="Enter block"];
|
||||||
64 [label="Access variable R|<local>/a|"];
|
66 [label="Access variable R|<local>/a|"];
|
||||||
65 [label="Smart cast: R|<local>/a|"];
|
67 [label="Smart cast: R|<local>/a|"];
|
||||||
66 [label="Access variable R|kotlin/String.length|"];
|
68 [label="Access variable R|kotlin/String.length|"];
|
||||||
subgraph cluster_19 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
67 [label="Enter when"];
|
69 [label="Enter when"];
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
68 [label="Enter when branch condition "];
|
|
||||||
69 [label="Access variable R|<local>/b|"];
|
|
||||||
70 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
|
||||||
71 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
72 [label="Enter when branch condition else"];
|
70 [label="Enter when branch condition "];
|
||||||
|
71 [label="Access variable R|<local>/b|"];
|
||||||
|
72 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
||||||
73 [label="Exit when branch condition"];
|
73 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
74 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
75 [label="Enter block"];
|
74 [label="Enter when branch condition else"];
|
||||||
76 [label="Const: Int(1)"];
|
75 [label="Exit when branch condition"];
|
||||||
77 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
78 [label="Exit when branch result"];
|
76 [label="Enter when branch result"];
|
||||||
79 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_23 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
80 [label="Enter block"];
|
77 [label="Enter block"];
|
||||||
81 [label="Access variable R|<local>/b|"];
|
78 [label="Const: Int(1)"];
|
||||||
82 [label="Smart cast: R|<local>/b|"];
|
79 [label="Exit block"];
|
||||||
83 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
84 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
85 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
86 [label="Exit when branch result"];
|
80 [label="Exit when branch result"];
|
||||||
87 [label="Exit when"];
|
81 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
82 [label="Enter block"];
|
||||||
|
83 [label="Access variable R|<local>/b|"];
|
||||||
|
84 [label="Smart cast: R|<local>/b|"];
|
||||||
|
85 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
86 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
87 [label="Exit block"];
|
||||||
|
}
|
||||||
|
88 [label="Exit when branch result"];
|
||||||
|
89 [label="Exit when"];
|
||||||
}
|
}
|
||||||
88 [label="Exit block"];
|
90 [label="Exit block"];
|
||||||
}
|
}
|
||||||
89 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
91 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
90 [label="Postponed exit from lambda"];
|
92 [label="Postponed exit from lambda"];
|
||||||
91 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
93 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
92 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
94 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||||
R|<local>/a|.R|kotlin/String.length|
|
R|<local>/a|.R|kotlin/String.length|
|
||||||
^ when () {
|
^ when () {
|
||||||
(R|<local>/b| is R|kotlin/String|) -> {
|
(R|<local>/b| is R|kotlin/String|) -> {
|
||||||
@@ -192,130 +199,130 @@ digraph localClassesWithImplicit_kt {
|
|||||||
|
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
93 [label="Stub" style="filled" fillcolor=gray];
|
95 [label="Stub" style="filled" fillcolor=gray];
|
||||||
94 [label="Exit block" style="filled" fillcolor=gray];
|
96 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
95 [label="Exit function foo" style="filled" fillcolor=red];
|
97 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_24 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
96 [label="Enter class A" style="filled" fillcolor=red];
|
98 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
97 [label="Enter function <init>" style="filled" fillcolor=red];
|
99 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
98 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
100 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
99 [label="Exit function <init>" style="filled" fillcolor=red];
|
101 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
100 [label="Exit class A" style="filled" fillcolor=red];
|
102 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_26 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
101 [label="Enter function baz" style="filled" fillcolor=red];
|
103 [label="Enter function baz" style="filled" fillcolor=red];
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
102 [label="Enter block"];
|
104 [label="Enter block"];
|
||||||
103 [label="Const: Int(1)"];
|
105 [label="Const: Int(1)"];
|
||||||
104 [label="Jump: ^baz Int(1)"];
|
106 [label="Jump: ^baz Int(1)"];
|
||||||
105 [label="Stub" style="filled" fillcolor=gray];
|
107 [label="Stub" style="filled" fillcolor=gray];
|
||||||
106 [label="Exit block" style="filled" fillcolor=gray];
|
108 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
107 [label="Exit function baz" style="filled" fillcolor=red];
|
109 [label="Exit function baz" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_28 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
108 [label="Enter function bar" style="filled" fillcolor=red];
|
110 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_29 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
109 [label="Enter block"];
|
111 [label="Enter block"];
|
||||||
110 [label="Postponed enter to lambda"];
|
112 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_30 {
|
subgraph cluster_31 {
|
||||||
color=blue
|
color=blue
|
||||||
111 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
113 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_31 {
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
112 [label="Enter block"];
|
114 [label="Enter block"];
|
||||||
113 [label="Access variable R|<local>/b|"];
|
115 [label="Access variable R|<local>/b|"];
|
||||||
114 [label="Access variable <Unresolved name: length>#"];
|
116 [label="Access variable <Unresolved name: length>#"];
|
||||||
115 [label="Access variable R|<local>/a|"];
|
117 [label="Access variable R|<local>/a|"];
|
||||||
116 [label="Smart cast: R|<local>/a|"];
|
118 [label="Smart cast: R|<local>/a|"];
|
||||||
117 [label="Access variable R|kotlin/String.length|"];
|
119 [label="Access variable R|kotlin/String.length|"];
|
||||||
118 [label="Function call: this@R|<local>/A|.R|<local>/baz|()" style="filled" fillcolor=yellow];
|
120 [label="Function call: this@R|<local>/A|.R|<local>/baz|()" style="filled" fillcolor=yellow];
|
||||||
119 [label="Exit block"];
|
121 [label="Exit block"];
|
||||||
}
|
}
|
||||||
120 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
122 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
121 [label="Postponed exit from lambda"];
|
123 [label="Postponed exit from lambda"];
|
||||||
122 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
124 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
123 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
125 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||||
R|<local>/b|.<Unresolved name: length>#
|
R|<local>/b|.<Unresolved name: length>#
|
||||||
R|<local>/a|.R|kotlin/String.length|
|
R|<local>/a|.R|kotlin/String.length|
|
||||||
^ this@R|<local>/A|.R|<local>/baz|()
|
^ this@R|<local>/A|.R|<local>/baz|()
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
124 [label="Stub" style="filled" fillcolor=gray];
|
126 [label="Stub" style="filled" fillcolor=gray];
|
||||||
125 [label="Exit block" style="filled" fillcolor=gray];
|
127 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
126 [label="Exit function bar" style="filled" fillcolor=red];
|
128 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_32 {
|
subgraph cluster_33 {
|
||||||
color=blue
|
color=blue
|
||||||
127 [label="Enter function foo" style="filled" fillcolor=red];
|
129 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_33 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
128 [label="Enter block"];
|
130 [label="Enter block"];
|
||||||
129 [label="Postponed enter to lambda"];
|
131 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_34 {
|
subgraph cluster_35 {
|
||||||
color=blue
|
color=blue
|
||||||
130 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
132 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_35 {
|
subgraph cluster_36 {
|
||||||
color=blue
|
color=blue
|
||||||
131 [label="Enter block"];
|
133 [label="Enter block"];
|
||||||
132 [label="Access variable R|<local>/a|"];
|
134 [label="Access variable R|<local>/a|"];
|
||||||
133 [label="Smart cast: R|<local>/a|"];
|
135 [label="Smart cast: R|<local>/a|"];
|
||||||
134 [label="Access variable R|kotlin/String.length|"];
|
136 [label="Access variable R|kotlin/String.length|"];
|
||||||
subgraph cluster_36 {
|
subgraph cluster_37 {
|
||||||
color=blue
|
color=blue
|
||||||
135 [label="Enter when"];
|
137 [label="Enter when"];
|
||||||
subgraph cluster_37 {
|
|
||||||
color=blue
|
|
||||||
136 [label="Enter when branch condition "];
|
|
||||||
137 [label="Access variable R|<local>/b|"];
|
|
||||||
138 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
|
||||||
139 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_38 {
|
subgraph cluster_38 {
|
||||||
color=blue
|
color=blue
|
||||||
140 [label="Enter when branch condition else"];
|
138 [label="Enter when branch condition "];
|
||||||
|
139 [label="Access variable R|<local>/b|"];
|
||||||
|
140 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
||||||
141 [label="Exit when branch condition"];
|
141 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
142 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_39 {
|
subgraph cluster_39 {
|
||||||
color=blue
|
color=blue
|
||||||
143 [label="Enter block"];
|
142 [label="Enter when branch condition else"];
|
||||||
144 [label="Const: Int(1)"];
|
143 [label="Exit when branch condition"];
|
||||||
145 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
146 [label="Exit when branch result"];
|
144 [label="Enter when branch result"];
|
||||||
147 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_40 {
|
subgraph cluster_40 {
|
||||||
color=blue
|
color=blue
|
||||||
148 [label="Enter block"];
|
145 [label="Enter block"];
|
||||||
149 [label="Access variable R|<local>/b|"];
|
146 [label="Const: Int(1)"];
|
||||||
150 [label="Smart cast: R|<local>/b|"];
|
147 [label="Exit block"];
|
||||||
151 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
152 [label="Function call: this@R|<local>/A|.R|<local>/bar|()" style="filled" fillcolor=yellow];
|
|
||||||
153 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
154 [label="Exit when branch result"];
|
148 [label="Exit when branch result"];
|
||||||
155 [label="Exit when"];
|
149 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_41 {
|
||||||
|
color=blue
|
||||||
|
150 [label="Enter block"];
|
||||||
|
151 [label="Access variable R|<local>/b|"];
|
||||||
|
152 [label="Smart cast: R|<local>/b|"];
|
||||||
|
153 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
154 [label="Function call: this@R|<local>/A|.R|<local>/bar|()" style="filled" fillcolor=yellow];
|
||||||
|
155 [label="Exit block"];
|
||||||
|
}
|
||||||
|
156 [label="Exit when branch result"];
|
||||||
|
157 [label="Exit when"];
|
||||||
}
|
}
|
||||||
156 [label="Exit block"];
|
158 [label="Exit block"];
|
||||||
}
|
}
|
||||||
157 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
159 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
158 [label="Postponed exit from lambda"];
|
160 [label="Postponed exit from lambda"];
|
||||||
159 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
161 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
160 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
162 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||||
R|<local>/a|.R|kotlin/String.length|
|
R|<local>/a|.R|kotlin/String.length|
|
||||||
^ when () {
|
^ when () {
|
||||||
(R|<local>/b| is R|kotlin/String|) -> {
|
(R|<local>/b| is R|kotlin/String|) -> {
|
||||||
@@ -329,58 +336,56 @@ digraph localClassesWithImplicit_kt {
|
|||||||
|
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
161 [label="Stub" style="filled" fillcolor=gray];
|
163 [label="Stub" style="filled" fillcolor=gray];
|
||||||
162 [label="Exit block" style="filled" fillcolor=gray];
|
164 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
163 [label="Exit function foo" style="filled" fillcolor=red];
|
165 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
7 -> {8};
|
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14 15};
|
13 -> {14};
|
||||||
14 -> {21};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16 17};
|
||||||
16 -> {17};
|
16 -> {23};
|
||||||
17 -> {32};
|
17 -> {18};
|
||||||
17 -> {18} [style=dotted];
|
18 -> {19};
|
||||||
18 -> {19} [style=dotted];
|
19 -> {34};
|
||||||
19 -> {20} [style=dotted];
|
19 -> {20} [style=dotted];
|
||||||
20 -> {21} [style=dotted];
|
20 -> {21} [style=dotted];
|
||||||
21 -> {22};
|
21 -> {22} [style=dotted];
|
||||||
22 -> {23 96};
|
22 -> {23} [style=dotted];
|
||||||
22 -> {96} [style=dashed];
|
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
23 -> {29} [style=dotted];
|
24 -> {25 98};
|
||||||
23 -> {24} [style=dashed];
|
24 -> {98} [style=dashed];
|
||||||
24 -> {25};
|
|
||||||
24 -> {33 40 59} [color=red];
|
|
||||||
24 -> {28} [style=dotted];
|
|
||||||
24 -> {25} [style=dashed];
|
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
|
25 -> {31} [style=dotted];
|
||||||
|
25 -> {26} [style=dashed];
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
|
26 -> {35 42 61} [color=red];
|
||||||
|
26 -> {30} [style=dotted];
|
||||||
|
26 -> {27} [style=dashed];
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
28 -> {33 40 59} [color=green];
|
|
||||||
28 -> {33 40 59} [style=dashed];
|
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
30 -> {35 42 61} [color=green];
|
||||||
|
30 -> {35 42 61} [style=dashed];
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {39};
|
36 -> {37};
|
||||||
36 -> {37} [style=dotted];
|
37 -> {38};
|
||||||
37 -> {38} [style=dotted];
|
38 -> {41};
|
||||||
38 -> {39} [style=dotted];
|
38 -> {39} [style=dotted];
|
||||||
40 -> {41};
|
39 -> {40} [style=dotted];
|
||||||
41 -> {42};
|
40 -> {41} [style=dotted];
|
||||||
42 -> {43 53 54};
|
42 -> {43};
|
||||||
42 -> {43} [style=dashed];
|
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45 55 56};
|
||||||
|
44 -> {45} [style=dashed];
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
@@ -390,18 +395,18 @@ digraph localClassesWithImplicit_kt {
|
|||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
53 -> {42} [color=green style=dashed];
|
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {58};
|
55 -> {56};
|
||||||
55 -> {56} [style=dotted];
|
55 -> {44} [color=green style=dashed];
|
||||||
56 -> {57} [style=dotted];
|
56 -> {57};
|
||||||
|
57 -> {60};
|
||||||
57 -> {58} [style=dotted];
|
57 -> {58} [style=dotted];
|
||||||
59 -> {60};
|
58 -> {59} [style=dotted];
|
||||||
60 -> {61};
|
59 -> {60} [style=dotted];
|
||||||
61 -> {62 90 91};
|
61 -> {62};
|
||||||
61 -> {62} [style=dashed];
|
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64 92 93};
|
||||||
|
63 -> {64} [style=dashed];
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
@@ -409,16 +414,16 @@ digraph localClassesWithImplicit_kt {
|
|||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72 79};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74 81};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {87};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {89};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
@@ -429,34 +434,34 @@ digraph localClassesWithImplicit_kt {
|
|||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
90 -> {61} [color=green style=dashed];
|
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {95};
|
92 -> {93};
|
||||||
92 -> {93} [style=dotted];
|
92 -> {63} [color=green style=dashed];
|
||||||
93 -> {94} [style=dotted];
|
93 -> {94};
|
||||||
|
94 -> {97};
|
||||||
94 -> {95} [style=dotted];
|
94 -> {95} [style=dotted];
|
||||||
96 -> {97};
|
95 -> {96} [style=dotted];
|
||||||
96 -> {101 108 127} [color=red];
|
96 -> {97} [style=dotted];
|
||||||
96 -> {100} [style=dotted];
|
|
||||||
96 -> {97} [style=dashed];
|
|
||||||
97 -> {98};
|
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100} [color=green];
|
98 -> {103 110 129} [color=red];
|
||||||
100 -> {101 108 127} [color=green];
|
98 -> {102} [style=dotted];
|
||||||
100 -> {101 108 127} [style=dashed];
|
98 -> {99} [style=dashed];
|
||||||
101 -> {102};
|
99 -> {100};
|
||||||
102 -> {103};
|
100 -> {101};
|
||||||
|
101 -> {102} [color=green];
|
||||||
|
102 -> {103 110 129} [color=green];
|
||||||
|
102 -> {103 110 129} [style=dashed];
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {107};
|
104 -> {105};
|
||||||
104 -> {105} [style=dotted];
|
105 -> {106};
|
||||||
105 -> {106} [style=dotted];
|
106 -> {109};
|
||||||
106 -> {107} [style=dotted];
|
106 -> {107} [style=dotted];
|
||||||
108 -> {109};
|
107 -> {108} [style=dotted];
|
||||||
109 -> {110};
|
108 -> {109} [style=dotted];
|
||||||
110 -> {111 121 122};
|
110 -> {111};
|
||||||
110 -> {111} [style=dashed];
|
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113 123 124};
|
||||||
|
112 -> {113} [style=dashed];
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
@@ -466,18 +471,18 @@ digraph localClassesWithImplicit_kt {
|
|||||||
119 -> {120};
|
119 -> {120};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
121 -> {110} [color=green style=dashed];
|
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
123 -> {126};
|
123 -> {124};
|
||||||
123 -> {124} [style=dotted];
|
123 -> {112} [color=green style=dashed];
|
||||||
124 -> {125} [style=dotted];
|
124 -> {125};
|
||||||
|
125 -> {128};
|
||||||
125 -> {126} [style=dotted];
|
125 -> {126} [style=dotted];
|
||||||
127 -> {128};
|
126 -> {127} [style=dotted];
|
||||||
128 -> {129};
|
127 -> {128} [style=dotted];
|
||||||
129 -> {130 158 159};
|
129 -> {130};
|
||||||
129 -> {130} [style=dashed];
|
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132 160 161};
|
||||||
|
131 -> {132} [style=dashed];
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
134 -> {135};
|
134 -> {135};
|
||||||
@@ -485,16 +490,16 @@ digraph localClassesWithImplicit_kt {
|
|||||||
136 -> {137};
|
136 -> {137};
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
138 -> {139};
|
138 -> {139};
|
||||||
139 -> {140 147};
|
139 -> {140};
|
||||||
140 -> {141};
|
140 -> {141};
|
||||||
141 -> {142};
|
141 -> {142 149};
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {146};
|
145 -> {146};
|
||||||
146 -> {155};
|
146 -> {147};
|
||||||
147 -> {148};
|
147 -> {148};
|
||||||
148 -> {149};
|
148 -> {157};
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
150 -> {151};
|
150 -> {151};
|
||||||
151 -> {152};
|
151 -> {152};
|
||||||
@@ -505,11 +510,13 @@ digraph localClassesWithImplicit_kt {
|
|||||||
156 -> {157};
|
156 -> {157};
|
||||||
157 -> {158};
|
157 -> {158};
|
||||||
158 -> {159};
|
158 -> {159};
|
||||||
158 -> {129} [color=green style=dashed];
|
|
||||||
159 -> {160};
|
159 -> {160};
|
||||||
160 -> {163};
|
160 -> {161};
|
||||||
160 -> {161} [style=dotted];
|
160 -> {131} [color=green style=dashed];
|
||||||
161 -> {162} [style=dotted];
|
161 -> {162};
|
||||||
|
162 -> {165};
|
||||||
162 -> {163} [style=dotted];
|
162 -> {163} [style=dotted];
|
||||||
|
163 -> {164} [style=dotted];
|
||||||
|
164 -> {165} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+365
-358
@@ -5,96 +5,101 @@ digraph loops_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function testWhile" style="filled" fillcolor=red];
|
0 [label="Enter file loops.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file loops.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function testWhile" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter while loop"];
|
4 [label="Enter while loop"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Enter loop condition"];
|
|
||||||
4 [label="Access variable R|<local>/b|"];
|
|
||||||
5 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter loop block"];
|
5 [label="Enter loop condition"];
|
||||||
subgraph cluster_5 {
|
6 [label="Access variable R|<local>/b|"];
|
||||||
color=blue
|
7 [label="Exit loop condition"];
|
||||||
7 [label="Enter block"];
|
|
||||||
8 [label="Access variable R|<local>/x|"];
|
|
||||||
9 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
10 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
|
||||||
11 [label="Exit block"];
|
|
||||||
}
|
|
||||||
12 [label="Exit loop block"];
|
|
||||||
}
|
}
|
||||||
13 [label="Exit while loop"];
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter loop block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter block"];
|
||||||
|
10 [label="Access variable R|<local>/x|"];
|
||||||
|
11 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
|
12 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||||
|
13 [label="Exit block"];
|
||||||
|
}
|
||||||
|
14 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
14 [label="Access variable R|<local>/x|"];
|
16 [label="Access variable R|<local>/x|"];
|
||||||
15 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
17 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
16 [label="Exit block"];
|
18 [label="Exit block"];
|
||||||
}
|
}
|
||||||
17 [label="Exit function testWhile" style="filled" fillcolor=red];
|
19 [label="Exit function testWhile" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6 13};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8 15};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {3} [color=green style=dashed];
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {5} [color=green style=dashed];
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
|
17 -> {18};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
18 [label="Enter function testDoWhile" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
20 [label="Enter do-while loop"];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
21 [label="Enter loop block"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
22 [label="Enter block"];
|
|
||||||
23 [label="Access variable R|<local>/x|"];
|
|
||||||
24 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
25 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
|
||||||
26 [label="Exit block"];
|
|
||||||
}
|
|
||||||
27 [label="Exit loop block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
28 [label="Enter loop condition"];
|
|
||||||
29 [label="Access variable R|<local>/b|"];
|
|
||||||
30 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
31 [label="Exit do-while loop"];
|
|
||||||
}
|
|
||||||
32 [label="Access variable R|<local>/x|"];
|
|
||||||
33 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
34 [label="Exit block"];
|
|
||||||
}
|
|
||||||
35 [label="Exit function testDoWhile" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
20 [label="Enter function testDoWhile" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
21 [label="Enter block"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
22 [label="Enter do-while loop"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
23 [label="Enter loop block"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter block"];
|
||||||
|
25 [label="Access variable R|<local>/x|"];
|
||||||
|
26 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
|
27 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||||
|
28 [label="Exit block"];
|
||||||
|
}
|
||||||
|
29 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
30 [label="Enter loop condition"];
|
||||||
|
31 [label="Access variable R|<local>/b|"];
|
||||||
|
32 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
33 [label="Exit do-while loop"];
|
||||||
|
}
|
||||||
|
34 [label="Access variable R|<local>/x|"];
|
||||||
|
35 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
|
36 [label="Exit block"];
|
||||||
|
}
|
||||||
|
37 [label="Exit function testDoWhile" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
@@ -106,69 +111,69 @@ digraph loops_kt {
|
|||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
30 -> {21} [color=green style=dashed];
|
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
|
32 -> {23} [color=green style=dashed];
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
|
35 -> {36};
|
||||||
|
36 -> {37};
|
||||||
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_13 {
|
||||||
color=red
|
color=red
|
||||||
36 [label="Enter function testFor" style="filled" fillcolor=red];
|
38 [label="Enter function testFor" style="filled" fillcolor=red];
|
||||||
subgraph cluster_13 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
37 [label="Enter block"];
|
39 [label="Enter block"];
|
||||||
subgraph cluster_14 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
38 [label="Enter block"];
|
40 [label="Enter block"];
|
||||||
39 [label="Const: Int(0)"];
|
41 [label="Const: Int(0)"];
|
||||||
40 [label="Const: Int(5)"];
|
42 [label="Const: Int(5)"];
|
||||||
41 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...)" style="filled" fillcolor=yellow];
|
43 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...)" style="filled" fillcolor=yellow];
|
||||||
42 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...).R|kotlin/ranges/IntProgression.iterator|()" style="filled" fillcolor=yellow];
|
44 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...).R|kotlin/ranges/IntProgression.iterator|()" style="filled" fillcolor=yellow];
|
||||||
43 [label="Variable declaration: lval <iterator>: R|kotlin/collections/IntIterator|"];
|
45 [label="Variable declaration: lval <iterator>: R|kotlin/collections/IntIterator|"];
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
44 [label="Enter while loop"];
|
46 [label="Enter while loop"];
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
45 [label="Enter loop condition"];
|
|
||||||
46 [label="Access variable R|<local>/<iterator>|"];
|
|
||||||
47 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/IntIterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
|
||||||
48 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
49 [label="Enter loop block"];
|
47 [label="Enter loop condition"];
|
||||||
subgraph cluster_18 {
|
48 [label="Access variable R|<local>/<iterator>|"];
|
||||||
color=blue
|
49 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/IntIterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||||
50 [label="Enter block"];
|
50 [label="Exit loop condition"];
|
||||||
51 [label="Access variable R|<local>/<iterator>|"];
|
|
||||||
52 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/IntIterator.next|()" style="filled" fillcolor=yellow];
|
|
||||||
53 [label="Variable declaration: lval i: R|kotlin/Int|"];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
54 [label="Enter block"];
|
|
||||||
55 [label="Access variable R|<local>/x|"];
|
|
||||||
56 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
57 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
|
||||||
58 [label="Exit block"];
|
|
||||||
}
|
|
||||||
59 [label="Exit block"];
|
|
||||||
}
|
|
||||||
60 [label="Exit loop block"];
|
|
||||||
}
|
}
|
||||||
61 [label="Exit while loop"];
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
51 [label="Enter loop block"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
52 [label="Enter block"];
|
||||||
|
53 [label="Access variable R|<local>/<iterator>|"];
|
||||||
|
54 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/IntIterator.next|()" style="filled" fillcolor=yellow];
|
||||||
|
55 [label="Variable declaration: lval i: R|kotlin/Int|"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
56 [label="Enter block"];
|
||||||
|
57 [label="Access variable R|<local>/x|"];
|
||||||
|
58 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
|
59 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||||
|
60 [label="Exit block"];
|
||||||
|
}
|
||||||
|
61 [label="Exit block"];
|
||||||
|
}
|
||||||
|
62 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
63 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
62 [label="Exit block"];
|
64 [label="Exit block"];
|
||||||
}
|
}
|
||||||
63 [label="Access variable R|<local>/x|"];
|
65 [label="Access variable R|<local>/x|"];
|
||||||
64 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
66 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
65 [label="Exit block"];
|
67 [label="Exit block"];
|
||||||
}
|
}
|
||||||
66 [label="Exit function testFor" style="filled" fillcolor=red];
|
68 [label="Exit function testFor" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
36 -> {37};
|
|
||||||
37 -> {38};
|
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
@@ -179,9 +184,9 @@ digraph loops_kt {
|
|||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49 61};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51 63};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
@@ -191,227 +196,227 @@ digraph loops_kt {
|
|||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {45} [color=green style=dashed];
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {47} [color=green style=dashed];
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
|
66 -> {67};
|
||||||
|
67 -> {68};
|
||||||
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_21 {
|
||||||
color=red
|
color=red
|
||||||
67 [label="Enter function testWhileTrue" style="filled" fillcolor=red];
|
69 [label="Enter function testWhileTrue" style="filled" fillcolor=red];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
68 [label="Enter block"];
|
70 [label="Enter block"];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
69 [label="Enter while loop"];
|
71 [label="Enter while loop"];
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
70 [label="Enter loop condition"];
|
|
||||||
71 [label="Const: Boolean(true)"];
|
|
||||||
72 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_24 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
73 [label="Enter loop block"];
|
72 [label="Enter loop condition"];
|
||||||
subgraph cluster_25 {
|
73 [label="Const: Boolean(true)"];
|
||||||
color=blue
|
74 [label="Exit loop condition"];
|
||||||
74 [label="Enter block"];
|
|
||||||
75 [label="Const: Int(1)"];
|
|
||||||
76 [label="Exit block"];
|
|
||||||
}
|
|
||||||
77 [label="Exit loop block"];
|
|
||||||
}
|
}
|
||||||
78 [label="Exit while loop" style="filled" fillcolor=gray];
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
75 [label="Enter loop block"];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
76 [label="Enter block"];
|
||||||
|
77 [label="Const: Int(1)"];
|
||||||
|
78 [label="Exit block"];
|
||||||
|
}
|
||||||
|
79 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
80 [label="Exit while loop" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
79 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
81 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||||
80 [label="Exit block" style="filled" fillcolor=gray];
|
82 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
81 [label="Exit function testWhileTrue" style="filled" fillcolor=gray];
|
83 [label="Exit function testWhileTrue" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
67 -> {68};
|
|
||||||
68 -> {69};
|
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
72 -> {78} [style=dotted];
|
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
|
74 -> {80} [style=dotted];
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {70} [color=green style=dashed];
|
77 -> {78};
|
||||||
78 -> {79} [style=dotted];
|
78 -> {79};
|
||||||
79 -> {80} [style=dotted];
|
79 -> {72} [color=green style=dashed];
|
||||||
80 -> {81} [style=dotted];
|
80 -> {81} [style=dotted];
|
||||||
|
81 -> {82} [style=dotted];
|
||||||
|
82 -> {83} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_26 {
|
subgraph cluster_27 {
|
||||||
color=red
|
color=red
|
||||||
82 [label="Enter function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
84 [label="Enter function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
83 [label="Enter block"];
|
85 [label="Enter block"];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
84 [label="Enter while loop"];
|
86 [label="Enter while loop"];
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
85 [label="Enter loop condition"];
|
|
||||||
86 [label="Const: Boolean(true)"];
|
|
||||||
87 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_30 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
88 [label="Enter loop block"];
|
87 [label="Enter loop condition"];
|
||||||
subgraph cluster_31 {
|
88 [label="Const: Boolean(true)"];
|
||||||
|
89 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
90 [label="Enter loop block"];
|
||||||
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
89 [label="Enter block"];
|
91 [label="Enter block"];
|
||||||
subgraph cluster_32 {
|
subgraph cluster_33 {
|
||||||
color=blue
|
color=blue
|
||||||
90 [label="Enter when"];
|
92 [label="Enter when"];
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
91 [label="Enter when branch condition "];
|
|
||||||
92 [label="Access variable R|<local>/b|"];
|
|
||||||
93 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
94 [label="Synthetic else branch"];
|
|
||||||
95 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_34 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
96 [label="Enter block"];
|
93 [label="Enter when branch condition "];
|
||||||
97 [label="Jump: break@@@[Boolean(true)] "];
|
94 [label="Access variable R|<local>/b|"];
|
||||||
98 [label="Stub" style="filled" fillcolor=gray];
|
95 [label="Exit when branch condition"];
|
||||||
99 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
100 [label="Exit when branch result" style="filled" fillcolor=gray];
|
96 [label="Synthetic else branch"];
|
||||||
101 [label="Exit when"];
|
97 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=blue
|
||||||
|
98 [label="Enter block"];
|
||||||
|
99 [label="Jump: break@@@[Boolean(true)] "];
|
||||||
|
100 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
101 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
102 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
103 [label="Exit when"];
|
||||||
}
|
}
|
||||||
102 [label="Exit block"];
|
104 [label="Exit block"];
|
||||||
}
|
}
|
||||||
103 [label="Exit loop block"];
|
105 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
104 [label="Exit while loop"];
|
106 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
105 [label="Const: Int(1)"];
|
107 [label="Const: Int(1)"];
|
||||||
106 [label="Exit block"];
|
108 [label="Exit block"];
|
||||||
}
|
}
|
||||||
107 [label="Exit function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
109 [label="Exit function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
82 -> {83};
|
|
||||||
83 -> {84};
|
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
87 -> {104} [style=dotted];
|
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
|
89 -> {106} [style=dotted];
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94 95};
|
93 -> {94};
|
||||||
94 -> {101};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96 97};
|
||||||
96 -> {97};
|
96 -> {103};
|
||||||
97 -> {104};
|
97 -> {98};
|
||||||
97 -> {98} [style=dotted];
|
98 -> {99};
|
||||||
98 -> {99} [style=dotted];
|
99 -> {106};
|
||||||
99 -> {100} [style=dotted];
|
99 -> {100} [style=dotted];
|
||||||
100 -> {101} [style=dotted];
|
100 -> {101} [style=dotted];
|
||||||
101 -> {102};
|
101 -> {102} [style=dotted];
|
||||||
102 -> {103};
|
102 -> {103} [style=dotted];
|
||||||
103 -> {85} [color=green style=dashed];
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {87} [color=green style=dashed];
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
|
107 -> {108};
|
||||||
|
108 -> {109};
|
||||||
|
|
||||||
subgraph cluster_35 {
|
subgraph cluster_36 {
|
||||||
color=red
|
color=red
|
||||||
108 [label="Enter function testWhileFalse" style="filled" fillcolor=red];
|
110 [label="Enter function testWhileFalse" style="filled" fillcolor=red];
|
||||||
subgraph cluster_36 {
|
subgraph cluster_37 {
|
||||||
color=blue
|
color=blue
|
||||||
109 [label="Enter block"];
|
111 [label="Enter block"];
|
||||||
subgraph cluster_37 {
|
subgraph cluster_38 {
|
||||||
color=blue
|
color=blue
|
||||||
110 [label="Enter while loop"];
|
112 [label="Enter while loop"];
|
||||||
subgraph cluster_38 {
|
|
||||||
color=blue
|
|
||||||
111 [label="Enter loop condition"];
|
|
||||||
112 [label="Const: Boolean(false)"];
|
|
||||||
113 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_39 {
|
subgraph cluster_39 {
|
||||||
color=blue
|
color=blue
|
||||||
114 [label="Enter loop block" style="filled" fillcolor=gray];
|
113 [label="Enter loop condition"];
|
||||||
subgraph cluster_40 {
|
114 [label="Const: Boolean(false)"];
|
||||||
color=blue
|
115 [label="Exit loop condition"];
|
||||||
115 [label="Enter block" style="filled" fillcolor=gray];
|
|
||||||
116 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
|
||||||
117 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
118 [label="Exit loop block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
119 [label="Exit while loop"];
|
subgraph cluster_40 {
|
||||||
|
color=blue
|
||||||
|
116 [label="Enter loop block" style="filled" fillcolor=gray];
|
||||||
|
subgraph cluster_41 {
|
||||||
|
color=blue
|
||||||
|
117 [label="Enter block" style="filled" fillcolor=gray];
|
||||||
|
118 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||||
|
119 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
120 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
121 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
120 [label="Const: Int(1)"];
|
122 [label="Const: Int(1)"];
|
||||||
121 [label="Exit block"];
|
123 [label="Exit block"];
|
||||||
}
|
}
|
||||||
122 [label="Exit function testWhileFalse" style="filled" fillcolor=red];
|
124 [label="Exit function testWhileFalse" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
108 -> {109};
|
|
||||||
109 -> {110};
|
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {119};
|
113 -> {114};
|
||||||
113 -> {114} [style=dotted];
|
114 -> {115};
|
||||||
114 -> {115} [style=dotted];
|
115 -> {121};
|
||||||
115 -> {116} [style=dotted];
|
115 -> {116} [style=dotted];
|
||||||
116 -> {117} [style=dotted];
|
116 -> {117} [style=dotted];
|
||||||
117 -> {118} [style=dotted];
|
117 -> {118} [style=dotted];
|
||||||
118 -> {111} [color=green style=dotted];
|
118 -> {119} [style=dotted];
|
||||||
119 -> {120};
|
119 -> {120} [style=dotted];
|
||||||
120 -> {121};
|
120 -> {113} [color=green style=dotted];
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
|
122 -> {123};
|
||||||
subgraph cluster_41 {
|
|
||||||
color=red
|
|
||||||
123 [label="Enter function testDoWhileTrue" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_42 {
|
|
||||||
color=blue
|
|
||||||
124 [label="Enter block"];
|
|
||||||
subgraph cluster_43 {
|
|
||||||
color=blue
|
|
||||||
125 [label="Enter do-while loop"];
|
|
||||||
subgraph cluster_44 {
|
|
||||||
color=blue
|
|
||||||
126 [label="Enter loop block"];
|
|
||||||
subgraph cluster_45 {
|
|
||||||
color=blue
|
|
||||||
127 [label="Enter block"];
|
|
||||||
128 [label="Const: Int(1)"];
|
|
||||||
129 [label="Exit block"];
|
|
||||||
}
|
|
||||||
130 [label="Exit loop block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_46 {
|
|
||||||
color=blue
|
|
||||||
131 [label="Enter loop condition"];
|
|
||||||
132 [label="Const: Boolean(true)"];
|
|
||||||
133 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
134 [label="Exit do-while loop" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
135 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
|
||||||
136 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
137 [label="Exit function testDoWhileTrue" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
|
||||||
|
subgraph cluster_42 {
|
||||||
|
color=red
|
||||||
|
125 [label="Enter function testDoWhileTrue" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_43 {
|
||||||
|
color=blue
|
||||||
|
126 [label="Enter block"];
|
||||||
|
subgraph cluster_44 {
|
||||||
|
color=blue
|
||||||
|
127 [label="Enter do-while loop"];
|
||||||
|
subgraph cluster_45 {
|
||||||
|
color=blue
|
||||||
|
128 [label="Enter loop block"];
|
||||||
|
subgraph cluster_46 {
|
||||||
|
color=blue
|
||||||
|
129 [label="Enter block"];
|
||||||
|
130 [label="Const: Int(1)"];
|
||||||
|
131 [label="Exit block"];
|
||||||
|
}
|
||||||
|
132 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
subgraph cluster_47 {
|
||||||
|
color=blue
|
||||||
|
133 [label="Enter loop condition"];
|
||||||
|
134 [label="Const: Boolean(true)"];
|
||||||
|
135 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
136 [label="Exit do-while loop" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
137 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||||
|
138 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
139 [label="Exit function testDoWhileTrue" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
@@ -420,128 +425,128 @@ digraph loops_kt {
|
|||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {126} [color=green style=dashed];
|
133 -> {134};
|
||||||
133 -> {134} [style=dotted];
|
134 -> {135};
|
||||||
134 -> {135} [style=dotted];
|
135 -> {128} [color=green style=dashed];
|
||||||
135 -> {136} [style=dotted];
|
135 -> {136} [style=dotted];
|
||||||
136 -> {137} [style=dotted];
|
136 -> {137} [style=dotted];
|
||||||
|
137 -> {138} [style=dotted];
|
||||||
|
138 -> {139} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_47 {
|
subgraph cluster_48 {
|
||||||
color=red
|
color=red
|
||||||
138 [label="Enter function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
140 [label="Enter function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||||
subgraph cluster_48 {
|
subgraph cluster_49 {
|
||||||
color=blue
|
color=blue
|
||||||
139 [label="Enter block"];
|
141 [label="Enter block"];
|
||||||
subgraph cluster_49 {
|
subgraph cluster_50 {
|
||||||
color=blue
|
color=blue
|
||||||
140 [label="Enter do-while loop"];
|
142 [label="Enter do-while loop"];
|
||||||
subgraph cluster_50 {
|
subgraph cluster_51 {
|
||||||
color=blue
|
color=blue
|
||||||
141 [label="Enter loop block"];
|
143 [label="Enter loop block"];
|
||||||
subgraph cluster_51 {
|
subgraph cluster_52 {
|
||||||
color=blue
|
color=blue
|
||||||
142 [label="Enter block"];
|
144 [label="Enter block"];
|
||||||
subgraph cluster_52 {
|
subgraph cluster_53 {
|
||||||
color=blue
|
color=blue
|
||||||
143 [label="Enter when"];
|
145 [label="Enter when"];
|
||||||
subgraph cluster_53 {
|
|
||||||
color=blue
|
|
||||||
144 [label="Enter when branch condition "];
|
|
||||||
145 [label="Access variable R|<local>/b|"];
|
|
||||||
146 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
147 [label="Synthetic else branch"];
|
|
||||||
148 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_54 {
|
subgraph cluster_54 {
|
||||||
color=blue
|
color=blue
|
||||||
149 [label="Enter block"];
|
146 [label="Enter when branch condition "];
|
||||||
150 [label="Jump: break@@@[Boolean(true)] "];
|
147 [label="Access variable R|<local>/b|"];
|
||||||
151 [label="Stub" style="filled" fillcolor=gray];
|
148 [label="Exit when branch condition"];
|
||||||
152 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
153 [label="Exit when branch result" style="filled" fillcolor=gray];
|
149 [label="Synthetic else branch"];
|
||||||
154 [label="Exit when"];
|
150 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_55 {
|
||||||
|
color=blue
|
||||||
|
151 [label="Enter block"];
|
||||||
|
152 [label="Jump: break@@@[Boolean(true)] "];
|
||||||
|
153 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
154 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
155 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
156 [label="Exit when"];
|
||||||
}
|
}
|
||||||
155 [label="Exit block"];
|
157 [label="Exit block"];
|
||||||
}
|
}
|
||||||
156 [label="Exit loop block"];
|
158 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
subgraph cluster_55 {
|
subgraph cluster_56 {
|
||||||
color=blue
|
color=blue
|
||||||
157 [label="Enter loop condition"];
|
159 [label="Enter loop condition"];
|
||||||
158 [label="Const: Boolean(true)"];
|
160 [label="Const: Boolean(true)"];
|
||||||
159 [label="Exit loop condition"];
|
161 [label="Exit loop condition"];
|
||||||
}
|
}
|
||||||
160 [label="Exit do-while loop"];
|
162 [label="Exit do-while loop"];
|
||||||
}
|
}
|
||||||
161 [label="Const: Int(1)"];
|
163 [label="Const: Int(1)"];
|
||||||
162 [label="Exit block"];
|
164 [label="Exit block"];
|
||||||
}
|
}
|
||||||
163 [label="Exit function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
165 [label="Exit function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
138 -> {139};
|
|
||||||
139 -> {140};
|
|
||||||
140 -> {141};
|
140 -> {141};
|
||||||
141 -> {142};
|
141 -> {142};
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {146};
|
145 -> {146};
|
||||||
146 -> {147 148};
|
146 -> {147};
|
||||||
147 -> {154};
|
147 -> {148};
|
||||||
148 -> {149};
|
148 -> {149 150};
|
||||||
149 -> {150};
|
149 -> {156};
|
||||||
150 -> {160};
|
150 -> {151};
|
||||||
150 -> {151} [style=dotted];
|
151 -> {152};
|
||||||
151 -> {152} [style=dotted];
|
152 -> {162};
|
||||||
152 -> {153} [style=dotted];
|
152 -> {153} [style=dotted];
|
||||||
153 -> {154} [style=dotted];
|
153 -> {154} [style=dotted];
|
||||||
154 -> {155};
|
154 -> {155} [style=dotted];
|
||||||
155 -> {156};
|
155 -> {156} [style=dotted];
|
||||||
156 -> {157};
|
156 -> {157};
|
||||||
157 -> {158};
|
157 -> {158};
|
||||||
158 -> {159};
|
158 -> {159};
|
||||||
159 -> {141} [color=green style=dashed];
|
159 -> {160};
|
||||||
159 -> {160} [style=dotted];
|
|
||||||
160 -> {161};
|
160 -> {161};
|
||||||
161 -> {162};
|
161 -> {143} [color=green style=dashed];
|
||||||
|
161 -> {162} [style=dotted];
|
||||||
162 -> {163};
|
162 -> {163};
|
||||||
|
163 -> {164};
|
||||||
subgraph cluster_56 {
|
|
||||||
color=red
|
|
||||||
164 [label="Enter function testDoWhileFalse" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_57 {
|
|
||||||
color=blue
|
|
||||||
165 [label="Enter block"];
|
|
||||||
subgraph cluster_58 {
|
|
||||||
color=blue
|
|
||||||
166 [label="Enter do-while loop"];
|
|
||||||
subgraph cluster_59 {
|
|
||||||
color=blue
|
|
||||||
167 [label="Enter loop block"];
|
|
||||||
subgraph cluster_60 {
|
|
||||||
color=blue
|
|
||||||
168 [label="Enter block"];
|
|
||||||
169 [label="Const: Int(1)"];
|
|
||||||
170 [label="Exit block"];
|
|
||||||
}
|
|
||||||
171 [label="Exit loop block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_61 {
|
|
||||||
color=blue
|
|
||||||
172 [label="Enter loop condition"];
|
|
||||||
173 [label="Const: Boolean(false)"];
|
|
||||||
174 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
175 [label="Exit do-while loop"];
|
|
||||||
}
|
|
||||||
176 [label="Const: Int(1)"];
|
|
||||||
177 [label="Exit block"];
|
|
||||||
}
|
|
||||||
178 [label="Exit function testDoWhileFalse" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
164 -> {165};
|
164 -> {165};
|
||||||
165 -> {166};
|
|
||||||
|
subgraph cluster_57 {
|
||||||
|
color=red
|
||||||
|
166 [label="Enter function testDoWhileFalse" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_58 {
|
||||||
|
color=blue
|
||||||
|
167 [label="Enter block"];
|
||||||
|
subgraph cluster_59 {
|
||||||
|
color=blue
|
||||||
|
168 [label="Enter do-while loop"];
|
||||||
|
subgraph cluster_60 {
|
||||||
|
color=blue
|
||||||
|
169 [label="Enter loop block"];
|
||||||
|
subgraph cluster_61 {
|
||||||
|
color=blue
|
||||||
|
170 [label="Enter block"];
|
||||||
|
171 [label="Const: Int(1)"];
|
||||||
|
172 [label="Exit block"];
|
||||||
|
}
|
||||||
|
173 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
subgraph cluster_62 {
|
||||||
|
color=blue
|
||||||
|
174 [label="Enter loop condition"];
|
||||||
|
175 [label="Const: Boolean(false)"];
|
||||||
|
176 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
177 [label="Exit do-while loop"];
|
||||||
|
}
|
||||||
|
178 [label="Const: Int(1)"];
|
||||||
|
179 [label="Exit block"];
|
||||||
|
}
|
||||||
|
180 [label="Exit function testDoWhileFalse" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
166 -> {167};
|
166 -> {167};
|
||||||
167 -> {168};
|
167 -> {168};
|
||||||
168 -> {169};
|
168 -> {169};
|
||||||
@@ -551,9 +556,11 @@ digraph loops_kt {
|
|||||||
172 -> {173};
|
172 -> {173};
|
||||||
173 -> {174};
|
173 -> {174};
|
||||||
174 -> {175};
|
174 -> {175};
|
||||||
174 -> {167} [color=green style=dotted];
|
|
||||||
175 -> {176};
|
175 -> {176};
|
||||||
176 -> {177};
|
176 -> {177};
|
||||||
|
176 -> {169} [color=green style=dotted];
|
||||||
177 -> {178};
|
177 -> {178};
|
||||||
|
178 -> {179};
|
||||||
|
179 -> {180};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,102 +5,109 @@ digraph nestedClass_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class OuterClass" style="filled" fillcolor=red];
|
0 [label="Enter file nestedClass.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file nestedClass.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter property" style="filled" fillcolor=red];
|
0 -> {1} [color=green];
|
||||||
2 [label="Const: Int(1)"];
|
|
||||||
3 [label="Exit property" style="filled" fillcolor=red];
|
subgraph cluster_1 {
|
||||||
}
|
color=red
|
||||||
|
2 [label="Enter class OuterClass" style="filled" fillcolor=red];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
4 [label="Enter property" style="filled" fillcolor=red];
|
3 [label="Enter property" style="filled" fillcolor=red];
|
||||||
5 [label="Access variable R|/OuterClass.outerProperty|"];
|
4 [label="Const: Int(1)"];
|
||||||
6 [label="Exit property" style="filled" fillcolor=red];
|
5 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
7 [label="Enter function <init>" style="filled" fillcolor=red];
|
6 [label="Enter property" style="filled" fillcolor=red];
|
||||||
8 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
7 [label="Access variable R|/OuterClass.outerProperty|"];
|
||||||
9 [label="Exit function <init>" style="filled" fillcolor=red];
|
8 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
10 [label="Exit class OuterClass" style="filled" fillcolor=red];
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
10 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
12 [label="Exit class OuterClass" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
2 -> {3} [color=green];
|
||||||
0 -> {10} [style=dotted];
|
2 -> {12} [style=dotted];
|
||||||
0 -> {1 4 7} [style=dashed];
|
2 -> {3 6 9} [style=dashed];
|
||||||
1 -> {2};
|
3 -> {4};
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6} [color=green];
|
||||||
6 -> {7} [color=green];
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9} [color=green];
|
||||||
9 -> {10} [color=green];
|
9 -> {10};
|
||||||
|
10 -> {11};
|
||||||
|
11 -> {12} [color=green];
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
11 [label="Enter function outerFunction" style="filled" fillcolor=red];
|
13 [label="Enter function outerFunction" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter block"];
|
14 [label="Enter block"];
|
||||||
13 [label="Exit block"];
|
15 [label="Exit block"];
|
||||||
}
|
}
|
||||||
14 [label="Exit function outerFunction" style="filled" fillcolor=red];
|
16 [label="Exit function outerFunction" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
11 -> {12};
|
|
||||||
12 -> {13};
|
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
|
14 -> {15};
|
||||||
|
15 -> {16};
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
15 [label="Enter class NestedClass" style="filled" fillcolor=red];
|
17 [label="Enter class NestedClass" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
16 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
17 [label="Const: Int(1)"];
|
|
||||||
18 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
19 [label="Enter property" style="filled" fillcolor=red];
|
18 [label="Enter property" style="filled" fillcolor=red];
|
||||||
20 [label="Access variable R|/OuterClass.NestedClass.nestedProperty|"];
|
19 [label="Const: Int(1)"];
|
||||||
21 [label="Exit property" style="filled" fillcolor=red];
|
20 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
22 [label="Enter function <init>" style="filled" fillcolor=red];
|
21 [label="Enter property" style="filled" fillcolor=red];
|
||||||
23 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
22 [label="Access variable R|/OuterClass.NestedClass.nestedProperty|"];
|
||||||
24 [label="Exit function <init>" style="filled" fillcolor=red];
|
23 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
25 [label="Exit class NestedClass" style="filled" fillcolor=red];
|
subgraph cluster_10 {
|
||||||
}
|
|
||||||
15 -> {16} [color=green];
|
|
||||||
15 -> {25} [style=dotted];
|
|
||||||
15 -> {16 19 22} [style=dashed];
|
|
||||||
16 -> {17};
|
|
||||||
17 -> {18};
|
|
||||||
18 -> {19} [color=green];
|
|
||||||
19 -> {20};
|
|
||||||
20 -> {21};
|
|
||||||
21 -> {22} [color=green];
|
|
||||||
22 -> {23};
|
|
||||||
23 -> {24};
|
|
||||||
24 -> {25} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=red
|
|
||||||
26 [label="Enter function nestedFUnction" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter block"];
|
24 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
28 [label="Exit block"];
|
25 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
26 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
29 [label="Exit function nestedFUnction" style="filled" fillcolor=red];
|
27 [label="Exit class NestedClass" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
17 -> {18} [color=green];
|
||||||
|
17 -> {27} [style=dotted];
|
||||||
|
17 -> {18 21 24} [style=dashed];
|
||||||
|
18 -> {19};
|
||||||
|
19 -> {20};
|
||||||
|
20 -> {21} [color=green];
|
||||||
|
21 -> {22};
|
||||||
|
22 -> {23};
|
||||||
|
23 -> {24} [color=green];
|
||||||
|
24 -> {25};
|
||||||
|
25 -> {26};
|
||||||
|
26 -> {27} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=red
|
||||||
|
28 [label="Enter function nestedFUnction" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
29 [label="Enter block"];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function nestedFUnction" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
26 -> {27};
|
|
||||||
27 -> {28};
|
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+84
-77
@@ -5,106 +5,113 @@ digraph postponedLambdaInConstructor_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file postponedLambdaInConstructor.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file postponedLambdaInConstructor.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
4 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
|
||||||
0 -> {1} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter class B" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter property" style="filled" fillcolor=red];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
7 [label="Access variable R|<local>/s|"];
|
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
8 [label="Exit property" style="filled" fillcolor=red];
|
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
6 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {6} [style=dotted];
|
||||||
|
2 -> {3} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
7 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
8 [label="Enter property" style="filled" fillcolor=red];
|
||||||
10 [label="Access variable R|<local>/s|"];
|
9 [label="Access variable R|<local>/s|"];
|
||||||
11 [label="Postponed enter to lambda"];
|
10 [label="Exit property" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
13 [label="Enter block"];
|
|
||||||
14 [label="Exit anonymous function expression"];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
15 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
16 [label="Enter block"];
|
|
||||||
17 [label="Access variable R|<local>/it|"];
|
|
||||||
18 [label="Exit block"];
|
|
||||||
}
|
|
||||||
19 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
|
||||||
21 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
22 [label="Postponed exit from lambda"];
|
|
||||||
23 [label="Function call: R|<local>/s|.R|kotlin/let|<R|kotlin/String|, R|() -> kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
24 [label="Delegated constructor call: super<R|A|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
25 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
26 [label="Exit class B" style="filled" fillcolor=red];
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
12 [label="Access variable R|<local>/s|"];
|
||||||
|
13 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
14 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
15 [label="Enter block"];
|
||||||
|
16 [label="Exit anonymous function expression"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter block"];
|
||||||
|
19 [label="Access variable R|<local>/it|"];
|
||||||
|
20 [label="Exit block"];
|
||||||
|
}
|
||||||
|
21 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
22 [label="Exit block"];
|
||||||
|
}
|
||||||
|
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
24 [label="Postponed exit from lambda"];
|
||||||
|
25 [label="Function call: R|<local>/s|.R|kotlin/let|<R|kotlin/String|, R|() -> kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
26 [label="Delegated constructor call: super<R|A|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
28 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6} [color=green];
|
7 -> {8} [color=green];
|
||||||
5 -> {26} [style=dotted];
|
7 -> {28} [style=dotted];
|
||||||
5 -> {6 9} [style=dashed];
|
7 -> {8 11} [style=dashed];
|
||||||
6 -> {7};
|
8 -> {9};
|
||||||
7 -> {8};
|
|
||||||
8 -> {9} [color=green];
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11} [color=green];
|
||||||
11 -> {12 23};
|
11 -> {12};
|
||||||
11 -> {22} [style=dotted];
|
|
||||||
11 -> {12} [style=dashed];
|
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 25};
|
||||||
14 -> {15 20};
|
13 -> {24} [style=dotted];
|
||||||
14 -> {15} [style=dashed];
|
13 -> {14} [style=dashed];
|
||||||
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17 22};
|
||||||
|
16 -> {17} [style=dashed];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
22 -> {23};
|
||||||
22 -> {23} [color=green];
|
|
||||||
22 -> {24} [color=red];
|
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25} [color=green];
|
||||||
25 -> {26} [color=green];
|
24 -> {26} [color=red];
|
||||||
|
25 -> {26};
|
||||||
|
26 -> {27};
|
||||||
|
27 -> {28} [color=green];
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
27 [label="Enter function foo" style="filled" fillcolor=red];
|
29 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
28 [label="Enter block"];
|
30 [label="Enter block"];
|
||||||
29 [label="Function call: this@R|/B|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
31 [label="Function call: this@R|/B|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||||
30 [label="Exit block"];
|
32 [label="Exit block"];
|
||||||
}
|
}
|
||||||
31 [label="Exit function foo" style="filled" fillcolor=red];
|
33 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
27 -> {28};
|
|
||||||
28 -> {29};
|
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+297
-288
@@ -5,14 +5,14 @@ digraph postponedLambdaInReturn_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class Lateinit" style="filled" fillcolor=red];
|
0 [label="Enter file postponedLambdaInReturn.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
1 [label="Enter property" style="filled" fillcolor=red];
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
2 [label="Const: Boolean(false)"];
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
3 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 [label="Exit class Lateinit" style="filled" fillcolor=red];
|
4 [label="Exit file postponedLambdaInReturn.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
0 -> {4} [style=dotted];
|
||||||
@@ -23,475 +23,484 @@ digraph postponedLambdaInReturn_kt {
|
|||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter function build" style="filled" fillcolor=red];
|
5 [label="Enter class Lateinit" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter block"];
|
6 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
7 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
color=blue
|
8 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
7 [label="Enter block"];
|
|
||||||
8 [label="Exit block"];
|
|
||||||
}
|
|
||||||
9 [label="Function call: R|/Lateinit.Lateinit|<R|R|>()" style="filled" fillcolor=yellow];
|
|
||||||
10 [label="Access variable R|<local>/builder|"];
|
|
||||||
11 [label="Function call: R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
12 [label="Access variable R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
|
||||||
13 [label="Jump: ^build R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(R|<local>/builder|).R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
|
||||||
14 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
15 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
16 [label="Exit function build" style="filled" fillcolor=red];
|
9 [label="Exit class Lateinit" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6};
|
5 -> {6} [color=green];
|
||||||
|
5 -> {9} [style=dotted];
|
||||||
|
5 -> {6} [style=dashed];
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9} [color=green];
|
||||||
9 -> {10};
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
10 [label="Enter function build" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
13 [label="Exit block"];
|
||||||
|
}
|
||||||
|
14 [label="Function call: R|/Lateinit.Lateinit|<R|R|>()" style="filled" fillcolor=yellow];
|
||||||
|
15 [label="Access variable R|<local>/builder|"];
|
||||||
|
16 [label="Function call: R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
17 [label="Access variable R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
||||||
|
18 [label="Jump: ^build R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(R|<local>/builder|).R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
||||||
|
19 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
20 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
21 [label="Exit function build" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {16};
|
13 -> {14};
|
||||||
13 -> {14} [style=dotted];
|
14 -> {15};
|
||||||
14 -> {15} [style=dotted];
|
15 -> {16};
|
||||||
15 -> {16} [style=dotted];
|
16 -> {17};
|
||||||
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=red
|
|
||||||
17 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
18 [label="Const: Boolean(false)"];
|
|
||||||
19 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {21};
|
||||||
|
18 -> {19} [style=dotted];
|
||||||
|
19 -> {20} [style=dotted];
|
||||||
|
20 -> {21} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
20 [label="Enter function test1" style="filled" fillcolor=red];
|
22 [label="Enter function test1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
21 [label="Enter block"];
|
23 [label="Enter block"];
|
||||||
22 [label="Const: Null(null)"];
|
24 [label="Const: Null(null)"];
|
||||||
23 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
25 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
||||||
24 [label="Postponed enter to lambda"];
|
26 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
25 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
27 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
26 [label="Enter block"];
|
28 [label="Enter block"];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter when"];
|
29 [label="Enter when"];
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
28 [label="Enter when branch condition "];
|
|
||||||
29 [label="Access variable R|/p|"];
|
|
||||||
30 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
31 [label="Enter when branch condition else"];
|
30 [label="Enter when branch condition "];
|
||||||
|
31 [label="Access variable R|/p|"];
|
||||||
32 [label="Exit when branch condition"];
|
32 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
33 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
34 [label="Enter block"];
|
33 [label="Enter when branch condition else"];
|
||||||
35 [label="Const: String()"];
|
34 [label="Exit when branch condition"];
|
||||||
36 [label="Jump: ^@run String()"];
|
|
||||||
37 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
38 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
39 [label="Exit when branch result" style="filled" fillcolor=gray];
|
35 [label="Enter when branch result"];
|
||||||
40 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
41 [label="Enter block"];
|
36 [label="Enter block"];
|
||||||
42 [label="Postponed enter to lambda"];
|
37 [label="Const: String()"];
|
||||||
subgraph cluster_15 {
|
38 [label="Jump: ^@run String()"];
|
||||||
|
39 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
41 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
42 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter block"];
|
||||||
|
44 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
45 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
44 [label="Enter block"];
|
46 [label="Enter block"];
|
||||||
45 [label="Access variable R|<local>/y|"];
|
47 [label="Access variable R|<local>/y|"];
|
||||||
46 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
48 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
||||||
47 [label="Const: String(...)"];
|
49 [label="Const: String(...)"];
|
||||||
48 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
50 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||||
49 [label="Exit block"];
|
51 [label="Exit block"];
|
||||||
}
|
}
|
||||||
50 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
52 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
51 [label="Postponed exit from lambda"];
|
53 [label="Postponed exit from lambda"];
|
||||||
52 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
54 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
53 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
55 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||||
(R|<local>/y| as R|kotlin/String|)
|
(R|<local>/y| as R|kotlin/String|)
|
||||||
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
54 [label="Stub" style="filled" fillcolor=gray];
|
56 [label="Stub" style="filled" fillcolor=gray];
|
||||||
55 [label="Exit block" style="filled" fillcolor=gray];
|
57 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
56 [label="Exit when branch result" style="filled" fillcolor=gray];
|
58 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
57 [label="Exit when" style="filled" fillcolor=gray];
|
59 [label="Exit when" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
58 [label="Exit block" style="filled" fillcolor=gray];
|
60 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
59 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
61 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
60 [label="Postponed exit from lambda"];
|
62 [label="Postponed exit from lambda"];
|
||||||
61 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
63 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
62 [label="Variable declaration: lval x: R|kotlin/String|"];
|
64 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||||
63 [label="Access variable R|<local>/y|"];
|
65 [label="Access variable R|<local>/y|"];
|
||||||
64 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
66 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||||
65 [label="Exit block"];
|
67 [label="Exit block"];
|
||||||
}
|
}
|
||||||
66 [label="Exit function test1" style="filled" fillcolor=red];
|
68 [label="Exit function test1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
20 -> {21};
|
|
||||||
21 -> {22};
|
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25 61};
|
24 -> {25};
|
||||||
24 -> {60} [style=dotted];
|
|
||||||
24 -> {25} [style=dashed];
|
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27 63};
|
||||||
|
26 -> {62} [style=dotted];
|
||||||
|
26 -> {27} [style=dashed];
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31 40};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33 42};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {59};
|
36 -> {37};
|
||||||
36 -> {37} [style=dotted];
|
37 -> {38};
|
||||||
37 -> {38} [style=dotted];
|
38 -> {61};
|
||||||
38 -> {39} [style=dotted];
|
38 -> {39} [style=dotted];
|
||||||
39 -> {57} [style=dotted];
|
39 -> {40} [style=dotted];
|
||||||
40 -> {41};
|
40 -> {41} [style=dotted];
|
||||||
41 -> {42};
|
41 -> {59} [style=dotted];
|
||||||
42 -> {43 52};
|
42 -> {43};
|
||||||
42 -> {51} [style=dotted];
|
|
||||||
42 -> {43} [style=dashed];
|
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45 54};
|
||||||
|
44 -> {53} [style=dotted];
|
||||||
|
44 -> {45} [style=dashed];
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52} [color=green];
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {59};
|
53 -> {54} [color=green];
|
||||||
53 -> {54} [style=dotted];
|
54 -> {55};
|
||||||
54 -> {55} [style=dotted];
|
55 -> {61};
|
||||||
55 -> {56} [style=dotted];
|
55 -> {56} [style=dotted];
|
||||||
56 -> {57} [style=dotted];
|
56 -> {57} [style=dotted];
|
||||||
57 -> {58} [style=dotted];
|
57 -> {58} [style=dotted];
|
||||||
58 -> {59} [style=dotted];
|
58 -> {59} [style=dotted];
|
||||||
59 -> {60};
|
59 -> {60} [style=dotted];
|
||||||
60 -> {61};
|
60 -> {61} [style=dotted];
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
|
66 -> {67};
|
||||||
|
67 -> {68};
|
||||||
|
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=red
|
color=red
|
||||||
67 [label="Enter function test2" style="filled" fillcolor=red];
|
69 [label="Enter function test2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
68 [label="Enter block"];
|
70 [label="Enter block"];
|
||||||
69 [label="Postponed enter to lambda"];
|
71 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_19 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
70 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
72 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_20 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
71 [label="Enter block"];
|
73 [label="Enter block"];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
72 [label="Enter while loop"];
|
74 [label="Enter while loop"];
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
73 [label="Enter loop condition"];
|
|
||||||
74 [label="Const: Boolean(true)"];
|
|
||||||
75 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_23 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
76 [label="Enter loop block"];
|
75 [label="Enter loop condition"];
|
||||||
subgraph cluster_24 {
|
76 [label="Const: Boolean(true)"];
|
||||||
|
77 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
78 [label="Enter loop block"];
|
||||||
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
77 [label="Enter block"];
|
79 [label="Enter block"];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
78 [label="Try expression enter"];
|
80 [label="Try expression enter"];
|
||||||
subgraph cluster_26 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
79 [label="Try main block enter"];
|
81 [label="Try main block enter"];
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
80 [label="Enter block"];
|
82 [label="Enter block"];
|
||||||
81 [label="Postponed enter to lambda"];
|
83 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
82 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
84 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_29 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
83 [label="Enter block"];
|
85 [label="Enter block"];
|
||||||
84 [label="Const: String(...)"];
|
86 [label="Const: String(...)"];
|
||||||
85 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
87 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||||
86 [label="Exit block"];
|
88 [label="Exit block"];
|
||||||
}
|
}
|
||||||
87 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
89 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
88 [label="Postponed exit from lambda"];
|
90 [label="Postponed exit from lambda"];
|
||||||
89 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
91 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
90 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
92 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||||
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
91 [label="Stub" style="filled" fillcolor=gray];
|
93 [label="Stub" style="filled" fillcolor=gray];
|
||||||
92 [label="Exit block" style="filled" fillcolor=gray];
|
94 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
93 [label="Try main block exit" style="filled" fillcolor=gray];
|
95 [label="Try main block exit" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
subgraph cluster_30 {
|
subgraph cluster_31 {
|
||||||
color=blue
|
color=blue
|
||||||
94 [label="Catch enter"];
|
96 [label="Catch enter"];
|
||||||
95 [label="Variable declaration: e: R|kotlin/Throwable|"];
|
97 [label="Variable declaration: e: R|kotlin/Throwable|"];
|
||||||
subgraph cluster_31 {
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
96 [label="Enter block"];
|
98 [label="Enter block"];
|
||||||
97 [label="Exit block"];
|
99 [label="Exit block"];
|
||||||
}
|
}
|
||||||
98 [label="Catch exit"];
|
100 [label="Catch exit"];
|
||||||
}
|
}
|
||||||
99 [label="Try expression exit"];
|
101 [label="Try expression exit"];
|
||||||
}
|
}
|
||||||
100 [label="Exit block"];
|
102 [label="Exit block"];
|
||||||
}
|
}
|
||||||
101 [label="Exit loop block"];
|
103 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
102 [label="Exit while loop" style="filled" fillcolor=gray];
|
104 [label="Exit while loop" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
103 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
105 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
||||||
104 [label="Throw: throw R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
106 [label="Throw: throw R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
||||||
105 [label="Stub" style="filled" fillcolor=gray];
|
107 [label="Stub" style="filled" fillcolor=gray];
|
||||||
106 [label="Exit block" style="filled" fillcolor=gray];
|
108 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
107 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
109 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
108 [label="Postponed exit from lambda"];
|
110 [label="Postponed exit from lambda"];
|
||||||
109 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
111 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
110 [label="Variable declaration: lval x: R|kotlin/String|"];
|
112 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||||
111 [label="Access variable R|<local>/x|"];
|
113 [label="Access variable R|<local>/x|"];
|
||||||
112 [label="Access variable R|kotlin/String.length|"];
|
114 [label="Access variable R|kotlin/String.length|"];
|
||||||
113 [label="Exit block"];
|
115 [label="Exit block"];
|
||||||
}
|
}
|
||||||
114 [label="Exit function test2" style="filled" fillcolor=red];
|
116 [label="Exit function test2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
67 -> {68};
|
69 -> {70};
|
||||||
68 -> {69};
|
|
||||||
69 -> {70 109};
|
|
||||||
69 -> {108} [style=dotted];
|
|
||||||
69 -> {70} [style=dashed];
|
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72 111};
|
||||||
|
71 -> {110} [style=dotted];
|
||||||
|
71 -> {72} [style=dashed];
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
75 -> {102} [style=dotted];
|
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79 94};
|
77 -> {104} [style=dotted];
|
||||||
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81 96};
|
||||||
81 -> {82 89};
|
81 -> {82};
|
||||||
81 -> {88} [style=dotted];
|
|
||||||
81 -> {82} [style=dashed];
|
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84 91};
|
||||||
|
83 -> {90} [style=dotted];
|
||||||
|
83 -> {84} [style=dashed];
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89} [color=green];
|
88 -> {89};
|
||||||
89 -> {90 94};
|
89 -> {90};
|
||||||
90 -> {107};
|
90 -> {91} [color=green];
|
||||||
90 -> {91} [style=dotted];
|
91 -> {92 96};
|
||||||
91 -> {92} [style=dotted];
|
92 -> {109};
|
||||||
92 -> {93} [style=dotted];
|
92 -> {93} [style=dotted];
|
||||||
93 -> {94 99} [style=dotted];
|
93 -> {94} [style=dotted];
|
||||||
94 -> {95};
|
94 -> {95} [style=dotted];
|
||||||
95 -> {96};
|
95 -> {96 101} [style=dotted];
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {73} [color=green style=dashed];
|
101 -> {102};
|
||||||
102 -> {103} [style=dotted];
|
102 -> {103};
|
||||||
103 -> {104} [style=dotted];
|
103 -> {75} [color=green style=dashed];
|
||||||
104 -> {105} [style=dotted];
|
104 -> {105} [style=dotted];
|
||||||
105 -> {106} [style=dotted];
|
105 -> {106} [style=dotted];
|
||||||
106 -> {107} [style=dotted];
|
106 -> {107} [style=dotted];
|
||||||
107 -> {108};
|
107 -> {108} [style=dotted];
|
||||||
108 -> {109};
|
108 -> {109} [style=dotted];
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
|
114 -> {115};
|
||||||
|
115 -> {116};
|
||||||
|
|
||||||
subgraph cluster_32 {
|
subgraph cluster_33 {
|
||||||
color=red
|
color=red
|
||||||
115 [label="Enter function test3" style="filled" fillcolor=red];
|
117 [label="Enter function test3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_33 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
116 [label="Enter block"];
|
118 [label="Enter block"];
|
||||||
117 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
119 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
||||||
118 [label="Const: String()"];
|
120 [label="Const: String()"];
|
||||||
119 [label="Assignment: R|<local>/y|"];
|
121 [label="Assignment: R|<local>/y|"];
|
||||||
120 [label="Postponed enter to lambda"];
|
122 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_34 {
|
subgraph cluster_35 {
|
||||||
color=blue
|
color=blue
|
||||||
121 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
123 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_35 {
|
subgraph cluster_36 {
|
||||||
color=blue
|
color=blue
|
||||||
122 [label="Enter block"];
|
124 [label="Enter block"];
|
||||||
subgraph cluster_36 {
|
subgraph cluster_37 {
|
||||||
color=blue
|
color=blue
|
||||||
123 [label="Enter when"];
|
125 [label="Enter when"];
|
||||||
subgraph cluster_37 {
|
|
||||||
color=blue
|
|
||||||
124 [label="Enter when branch condition "];
|
|
||||||
125 [label="Access variable R|/p|"];
|
|
||||||
126 [label="Function call: R|/p|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
127 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_38 {
|
subgraph cluster_38 {
|
||||||
color=blue
|
color=blue
|
||||||
128 [label="Enter when branch condition else"];
|
126 [label="Enter when branch condition "];
|
||||||
|
127 [label="Access variable R|/p|"];
|
||||||
|
128 [label="Function call: R|/p|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
129 [label="Exit when branch condition"];
|
129 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
130 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_39 {
|
subgraph cluster_39 {
|
||||||
color=blue
|
color=blue
|
||||||
131 [label="Enter block"];
|
130 [label="Enter when branch condition else"];
|
||||||
132 [label="Const: String()"];
|
131 [label="Exit when branch condition"];
|
||||||
133 [label="Jump: ^@run String()"];
|
|
||||||
134 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
135 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
136 [label="Exit when branch result" style="filled" fillcolor=gray];
|
132 [label="Enter when branch result"];
|
||||||
137 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_40 {
|
subgraph cluster_40 {
|
||||||
color=blue
|
color=blue
|
||||||
138 [label="Enter block"];
|
133 [label="Enter block"];
|
||||||
139 [label="Postponed enter to lambda"];
|
134 [label="Const: String()"];
|
||||||
subgraph cluster_41 {
|
135 [label="Jump: ^@run String()"];
|
||||||
|
136 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
137 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
138 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
139 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_41 {
|
||||||
|
color=blue
|
||||||
|
140 [label="Enter block"];
|
||||||
|
141 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_42 {
|
||||||
color=blue
|
color=blue
|
||||||
140 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
142 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_42 {
|
subgraph cluster_43 {
|
||||||
color=blue
|
color=blue
|
||||||
141 [label="Enter block"];
|
143 [label="Enter block"];
|
||||||
142 [label="Const: Null(null)"];
|
144 [label="Const: Null(null)"];
|
||||||
143 [label="Assignment: R|<local>/y|"];
|
145 [label="Assignment: R|<local>/y|"];
|
||||||
144 [label="Const: String(...)"];
|
146 [label="Const: String(...)"];
|
||||||
145 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
147 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||||
146 [label="Exit block"];
|
148 [label="Exit block"];
|
||||||
}
|
}
|
||||||
147 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
149 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
148 [label="Postponed exit from lambda"];
|
150 [label="Postponed exit from lambda"];
|
||||||
149 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
151 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
150 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
152 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||||
R|<local>/y| = Null(null)
|
R|<local>/y| = Null(null)
|
||||||
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
151 [label="Stub" style="filled" fillcolor=gray];
|
153 [label="Stub" style="filled" fillcolor=gray];
|
||||||
152 [label="Exit block" style="filled" fillcolor=gray];
|
154 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
153 [label="Exit when branch result" style="filled" fillcolor=gray];
|
155 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
154 [label="Exit when" style="filled" fillcolor=gray];
|
156 [label="Exit when" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
155 [label="Exit block" style="filled" fillcolor=gray];
|
157 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
156 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
158 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
157 [label="Postponed exit from lambda"];
|
159 [label="Postponed exit from lambda"];
|
||||||
158 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
160 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
159 [label="Variable declaration: lval x: R|kotlin/String|"];
|
161 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||||
160 [label="Access variable R|<local>/y|"];
|
162 [label="Access variable R|<local>/y|"];
|
||||||
161 [label="Smart cast: R|<local>/y|"];
|
163 [label="Smart cast: R|<local>/y|"];
|
||||||
162 [label="Access variable R|kotlin/String.length|"];
|
164 [label="Access variable R|kotlin/String.length|"];
|
||||||
163 [label="Exit block"];
|
165 [label="Exit block"];
|
||||||
}
|
}
|
||||||
164 [label="Exit function test3" style="filled" fillcolor=red];
|
166 [label="Exit function test3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
115 -> {116};
|
|
||||||
116 -> {117};
|
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120};
|
||||||
120 -> {121 158};
|
120 -> {121};
|
||||||
120 -> {157} [style=dotted];
|
|
||||||
120 -> {121} [style=dashed];
|
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123 160};
|
||||||
|
122 -> {159} [style=dotted];
|
||||||
|
122 -> {123} [style=dashed];
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128 137};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {129};
|
||||||
129 -> {130};
|
129 -> {130 139};
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {156};
|
133 -> {134};
|
||||||
133 -> {134} [style=dotted];
|
134 -> {135};
|
||||||
134 -> {135} [style=dotted];
|
135 -> {158};
|
||||||
135 -> {136} [style=dotted];
|
135 -> {136} [style=dotted];
|
||||||
136 -> {154} [style=dotted];
|
136 -> {137} [style=dotted];
|
||||||
137 -> {138};
|
137 -> {138} [style=dotted];
|
||||||
138 -> {139};
|
138 -> {156} [style=dotted];
|
||||||
139 -> {140 149};
|
139 -> {140};
|
||||||
139 -> {148} [style=dotted];
|
|
||||||
139 -> {140} [style=dashed];
|
|
||||||
140 -> {141};
|
140 -> {141};
|
||||||
141 -> {142};
|
141 -> {142 151};
|
||||||
|
141 -> {150} [style=dotted];
|
||||||
|
141 -> {142} [style=dashed];
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {146};
|
145 -> {146};
|
||||||
146 -> {147};
|
146 -> {147};
|
||||||
147 -> {148};
|
147 -> {148};
|
||||||
148 -> {149} [color=green];
|
148 -> {149};
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
150 -> {156};
|
150 -> {151} [color=green];
|
||||||
150 -> {151} [style=dotted];
|
151 -> {152};
|
||||||
151 -> {152} [style=dotted];
|
152 -> {158};
|
||||||
152 -> {153} [style=dotted];
|
152 -> {153} [style=dotted];
|
||||||
153 -> {154} [style=dotted];
|
153 -> {154} [style=dotted];
|
||||||
154 -> {155} [style=dotted];
|
154 -> {155} [style=dotted];
|
||||||
155 -> {156} [style=dotted];
|
155 -> {156} [style=dotted];
|
||||||
156 -> {157};
|
156 -> {157} [style=dotted];
|
||||||
157 -> {158};
|
157 -> {158} [style=dotted];
|
||||||
158 -> {159};
|
158 -> {159};
|
||||||
159 -> {160};
|
159 -> {160};
|
||||||
160 -> {161};
|
160 -> {161};
|
||||||
161 -> {162};
|
161 -> {162};
|
||||||
162 -> {163};
|
162 -> {163};
|
||||||
163 -> {164};
|
163 -> {164};
|
||||||
|
164 -> {165};
|
||||||
|
165 -> {166};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,56 +5,63 @@ digraph postponedLambdas_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
0 [label="Enter file postponedLambdas.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file postponedLambdas.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
2 [label="Exit block"];
|
|
||||||
}
|
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test" style="filled" fillcolor=red];
|
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
6 [label="Access variable R|<local>/a|"];
|
4 [label="Exit block"];
|
||||||
7 [label="Access variable R|<local>/b|"];
|
|
||||||
8 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
10 [label="Enter block"];
|
|
||||||
11 [label="Const: String()"];
|
|
||||||
12 [label="Exit block"];
|
|
||||||
}
|
|
||||||
13 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
14 [label="Postponed exit from lambda"];
|
|
||||||
15 [label="Function call: R|/foo|(...)" style="filled" fillcolor=yellow];
|
|
||||||
16 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
17 [label="Exit function test" style="filled" fillcolor=red];
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
|
8 [label="Access variable R|<local>/a|"];
|
||||||
|
9 [label="Access variable R|<local>/b|"];
|
||||||
|
10 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
13 [label="Const: String()"];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
16 [label="Postponed exit from lambda"];
|
||||||
|
17 [label="Function call: R|/foo|(...)" style="filled" fillcolor=yellow];
|
||||||
|
18 [label="Exit block"];
|
||||||
|
}
|
||||||
|
19 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9 14 15};
|
8 -> {9};
|
||||||
8 -> {9} [style=dashed];
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11 16 17};
|
||||||
|
10 -> {11} [style=dashed];
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
|
17 -> {18};
|
||||||
|
18 -> {19};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+267
-258
@@ -5,304 +5,313 @@ digraph propertiesAndInitBlocks_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function run" style="filled" fillcolor=red];
|
0 [label="Enter file propertiesAndInitBlocks.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
1 [label="Enter property" style="filled" fillcolor=red];
|
||||||
2 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
2 [label="Const: Int(1)"];
|
||||||
3 [label="Exit block"];
|
3 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 [label="Exit function run" style="filled" fillcolor=red];
|
subgraph cluster_2 {
|
||||||
|
color=blue
|
||||||
|
4 [label="Enter property" style="filled" fillcolor=red];
|
||||||
|
5 [label="Const: Int(1)"];
|
||||||
|
6 [label="Exit property" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter property" style="filled" fillcolor=red];
|
||||||
|
8 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
11 [label="Local function declaration"];
|
||||||
|
12 [label="Local class declaration"];
|
||||||
|
13 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
15 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
16 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
17 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter class InitializerLocalClass" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter block"];
|
||||||
|
21 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
22 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
23 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
24 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||||
|
25 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
26 [label="Exit init block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
27 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||||
|
28 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||||
|
29 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
30 [label="Exit class InitializerLocalClass" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
31 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
32 [label="Enter block"];
|
||||||
|
33 [label="Const: Int(1)"];
|
||||||
|
34 [label="Const: Int(1)"];
|
||||||
|
35 [label="Function call: Int(1).R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
||||||
|
36 [label="Variable declaration: lval c: R|kotlin/Int|"];
|
||||||
|
37 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
38 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
39 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
41 [label="Exit function foo" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
42 [label="Postponed exit from lambda"];
|
||||||
|
43 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Exit property" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
45 [label="Enter property" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
46 [label="Try expression enter"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
47 [label="Try main block enter"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
48 [label="Enter block"];
|
||||||
|
49 [label="Const: Int(1)"];
|
||||||
|
50 [label="Exit block"];
|
||||||
|
}
|
||||||
|
51 [label="Try main block exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
52 [label="Catch enter"];
|
||||||
|
53 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
54 [label="Enter block"];
|
||||||
|
55 [label="Const: Int(2)"];
|
||||||
|
56 [label="Exit block"];
|
||||||
|
}
|
||||||
|
57 [label="Catch exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
58 [label="Enter finally"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
59 [label="Enter block"];
|
||||||
|
60 [label="Const: Int(0)"];
|
||||||
|
61 [label="Exit block"];
|
||||||
|
}
|
||||||
|
62 [label="Exit finally"];
|
||||||
|
}
|
||||||
|
63 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
64 [label="Exit property" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
65 [label="Exit file propertiesAndInitBlocks.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
|
0 -> {65} [style=dotted];
|
||||||
|
0 -> {1 4 7 45} [style=dashed];
|
||||||
1 -> {2};
|
1 -> {2};
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4} [color=green];
|
||||||
|
4 -> {5};
|
||||||
subgraph cluster_2 {
|
|
||||||
color=red
|
|
||||||
5 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
6 [label="Const: Int(1)"];
|
|
||||||
7 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7} [color=green];
|
||||||
|
7 -> {8};
|
||||||
subgraph cluster_3 {
|
8 -> {9 42 43};
|
||||||
color=red
|
8 -> {9} [style=dashed];
|
||||||
8 [label="Enter function <getter>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Const: Int(1)"];
|
|
||||||
11 [label="Jump: ^ Int(1)"];
|
|
||||||
12 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
13 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
14 [label="Exit function <getter>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {14};
|
11 -> {12 31};
|
||||||
11 -> {12} [style=dotted];
|
11 -> {31} [style=dashed];
|
||||||
12 -> {13} [style=dotted];
|
12 -> {13 18};
|
||||||
13 -> {14} [style=dotted];
|
12 -> {18} [style=dashed];
|
||||||
|
13 -> {14};
|
||||||
subgraph cluster_5 {
|
14 -> {15} [style=dotted];
|
||||||
color=red
|
15 -> {16} [style=dotted];
|
||||||
15 [label="Enter function <setter>" style="filled" fillcolor=red];
|
16 -> {17} [style=dotted];
|
||||||
subgraph cluster_6 {
|
17 -> {42} [style=dotted];
|
||||||
color=blue
|
|
||||||
16 [label="Enter block"];
|
|
||||||
17 [label="Const: Int(1)"];
|
|
||||||
18 [label="Assignment: F|/x2|"];
|
|
||||||
19 [label="Exit block"];
|
|
||||||
}
|
|
||||||
20 [label="Exit function <setter>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
|
||||||
17 -> {18};
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
|
18 -> {27} [color=red];
|
||||||
|
18 -> {30} [style=dotted];
|
||||||
|
18 -> {19 27} [style=dashed];
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
|
20 -> {21};
|
||||||
subgraph cluster_7 {
|
|
||||||
color=red
|
|
||||||
21 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
22 [label="Const: Int(1)"];
|
|
||||||
23 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23} [style=dotted];
|
||||||
|
23 -> {24} [style=dotted];
|
||||||
subgraph cluster_8 {
|
24 -> {25} [style=dotted];
|
||||||
color=red
|
25 -> {26} [style=dotted];
|
||||||
24 [label="Enter function <getter>" style="filled" fillcolor=red];
|
26 -> {27} [style=dotted];
|
||||||
subgraph cluster_9 {
|
27 -> {28} [style=dotted];
|
||||||
color=blue
|
28 -> {29} [style=dotted];
|
||||||
25 [label="Enter block"];
|
29 -> {30} [style=dotted];
|
||||||
26 [label="Local class declaration"];
|
|
||||||
27 [label="Exit block"];
|
|
||||||
}
|
|
||||||
28 [label="Exit function <getter>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
29 [label="Enter class GetterLocalClass" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
30 [label="Enter init block" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
32 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
33 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
34 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
35 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
36 [label="Exit init block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
37 [label="Enter function <init>" style="filled" fillcolor=gray];
|
|
||||||
38 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
|
||||||
39 [label="Exit function <init>" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
40 [label="Exit class GetterLocalClass" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
24 -> {25};
|
|
||||||
25 -> {26};
|
|
||||||
26 -> {27 29};
|
|
||||||
26 -> {29} [style=dashed];
|
|
||||||
27 -> {28};
|
|
||||||
29 -> {30};
|
|
||||||
29 -> {37} [color=red];
|
|
||||||
29 -> {40} [style=dotted];
|
|
||||||
29 -> {30 37} [style=dashed];
|
|
||||||
30 -> {31};
|
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34} [style=dotted];
|
33 -> {34};
|
||||||
34 -> {35} [style=dotted];
|
34 -> {35};
|
||||||
35 -> {36} [style=dotted];
|
35 -> {36};
|
||||||
36 -> {37} [style=dotted];
|
36 -> {37};
|
||||||
37 -> {38} [style=dotted];
|
37 -> {38};
|
||||||
38 -> {39} [style=dotted];
|
38 -> {39} [style=dotted];
|
||||||
39 -> {40} [style=dotted];
|
39 -> {40} [style=dotted];
|
||||||
|
40 -> {41} [style=dotted];
|
||||||
subgraph cluster_14 {
|
42 -> {43};
|
||||||
color=red
|
42 -> {8} [color=green style=dashed];
|
||||||
41 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
42 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
44 [label="Enter block"];
|
|
||||||
45 [label="Local function declaration"];
|
|
||||||
46 [label="Local class declaration"];
|
|
||||||
47 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
48 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
49 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
50 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
51 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
52 [label="Enter class InitializerLocalClass" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
53 [label="Enter init block" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
54 [label="Enter block"];
|
|
||||||
55 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
56 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
57 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
58 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
|
||||||
59 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
60 [label="Exit init block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
61 [label="Enter function <init>" style="filled" fillcolor=gray];
|
|
||||||
62 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
|
||||||
63 [label="Exit function <init>" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
64 [label="Exit class InitializerLocalClass" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
65 [label="Enter function foo" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
66 [label="Enter block"];
|
|
||||||
67 [label="Const: Int(1)"];
|
|
||||||
68 [label="Const: Int(1)"];
|
|
||||||
69 [label="Function call: Int(1).R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
|
||||||
70 [label="Variable declaration: lval c: R|kotlin/Int|"];
|
|
||||||
71 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
72 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
73 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
74 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
75 [label="Exit function foo" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
76 [label="Postponed exit from lambda"];
|
|
||||||
77 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
|
||||||
78 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
41 -> {42};
|
|
||||||
42 -> {43 76 77};
|
|
||||||
42 -> {43} [style=dashed];
|
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45} [color=green];
|
||||||
45 -> {46 65};
|
45 -> {46};
|
||||||
45 -> {65} [style=dashed];
|
|
||||||
46 -> {47 52};
|
46 -> {47 52};
|
||||||
46 -> {52} [style=dashed];
|
46 -> {58} [label="onUncaughtException"];
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49} [style=dotted];
|
48 -> {49};
|
||||||
49 -> {50} [style=dotted];
|
49 -> {50};
|
||||||
50 -> {51} [style=dotted];
|
50 -> {51};
|
||||||
51 -> {76} [style=dotted];
|
51 -> {52 58};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
52 -> {61} [color=red];
|
52 -> {58} [label="onUncaughtException"];
|
||||||
52 -> {64} [style=dotted];
|
|
||||||
52 -> {53 61} [style=dashed];
|
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57} [style=dotted];
|
56 -> {57};
|
||||||
57 -> {58} [style=dotted];
|
57 -> {58};
|
||||||
58 -> {59} [style=dotted];
|
58 -> {59};
|
||||||
59 -> {60} [style=dotted];
|
59 -> {60};
|
||||||
60 -> {61} [style=dotted];
|
60 -> {61};
|
||||||
61 -> {62} [style=dotted];
|
61 -> {62};
|
||||||
62 -> {63} [style=dotted];
|
62 -> {63};
|
||||||
63 -> {64} [style=dotted];
|
63 -> {64};
|
||||||
65 -> {66};
|
64 -> {65} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=red
|
||||||
|
66 [label="Enter function run" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
67 [label="Enter block"];
|
||||||
|
68 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
69 [label="Exit block"];
|
||||||
|
}
|
||||||
|
70 [label="Exit function run" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
|
||||||
71 -> {72};
|
|
||||||
72 -> {73} [style=dotted];
|
|
||||||
73 -> {74} [style=dotted];
|
|
||||||
74 -> {75} [style=dotted];
|
|
||||||
76 -> {77};
|
|
||||||
76 -> {42} [color=green style=dashed];
|
|
||||||
77 -> {78};
|
|
||||||
|
|
||||||
subgraph cluster_23 {
|
subgraph cluster_22 {
|
||||||
color=red
|
color=red
|
||||||
79 [label="Enter property" style="filled" fillcolor=red];
|
71 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_24 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
80 [label="Try expression enter"];
|
72 [label="Enter block"];
|
||||||
subgraph cluster_25 {
|
73 [label="Const: Int(1)"];
|
||||||
color=blue
|
74 [label="Jump: ^ Int(1)"];
|
||||||
81 [label="Try main block enter"];
|
75 [label="Stub" style="filled" fillcolor=gray];
|
||||||
subgraph cluster_26 {
|
76 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
color=blue
|
|
||||||
82 [label="Enter block"];
|
|
||||||
83 [label="Const: Int(1)"];
|
|
||||||
84 [label="Exit block"];
|
|
||||||
}
|
|
||||||
85 [label="Try main block exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_27 {
|
|
||||||
color=blue
|
|
||||||
86 [label="Catch enter"];
|
|
||||||
87 [label="Variable declaration: e: R|kotlin/Exception|"];
|
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
88 [label="Enter block"];
|
|
||||||
89 [label="Const: Int(2)"];
|
|
||||||
90 [label="Exit block"];
|
|
||||||
}
|
|
||||||
91 [label="Catch exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
92 [label="Enter finally"];
|
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
93 [label="Enter block"];
|
|
||||||
94 [label="Const: Int(0)"];
|
|
||||||
95 [label="Exit block"];
|
|
||||||
}
|
|
||||||
96 [label="Exit finally"];
|
|
||||||
}
|
|
||||||
97 [label="Try expression exit"];
|
|
||||||
}
|
}
|
||||||
98 [label="Exit property" style="filled" fillcolor=red];
|
77 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
71 -> {72};
|
||||||
|
72 -> {73};
|
||||||
|
73 -> {74};
|
||||||
|
74 -> {77};
|
||||||
|
74 -> {75} [style=dotted];
|
||||||
|
75 -> {76} [style=dotted];
|
||||||
|
76 -> {77} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=red
|
||||||
|
78 [label="Enter function <setter>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
79 [label="Enter block"];
|
||||||
|
80 [label="Const: Int(1)"];
|
||||||
|
81 [label="Assignment: F|/x2|"];
|
||||||
|
82 [label="Exit block"];
|
||||||
|
}
|
||||||
|
83 [label="Exit function <setter>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81 86};
|
80 -> {81};
|
||||||
80 -> {92} [label="onUncaughtException"];
|
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=red
|
||||||
|
84 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
85 [label="Enter block"];
|
||||||
|
86 [label="Local class declaration"];
|
||||||
|
87 [label="Exit block"];
|
||||||
|
}
|
||||||
|
88 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_28 {
|
||||||
|
color=blue
|
||||||
|
89 [label="Enter class GetterLocalClass" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
90 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
91 [label="Enter block"];
|
||||||
|
92 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
93 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
94 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
95 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
96 [label="Exit init block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
97 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||||
|
98 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||||
|
99 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
100 [label="Exit class GetterLocalClass" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86 92};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87 89};
|
||||||
86 -> {92} [label="onUncaughtException"];
|
86 -> {89} [style=dashed];
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
|
89 -> {97} [color=red];
|
||||||
|
89 -> {100} [style=dotted];
|
||||||
|
89 -> {90 97} [style=dashed];
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94} [style=dotted];
|
||||||
94 -> {95};
|
94 -> {95} [style=dotted];
|
||||||
95 -> {96};
|
95 -> {96} [style=dotted];
|
||||||
96 -> {97};
|
96 -> {97} [style=dotted];
|
||||||
97 -> {98};
|
97 -> {98} [style=dotted];
|
||||||
|
98 -> {99} [style=dotted];
|
||||||
|
99 -> {100} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+155
-148
@@ -5,205 +5,210 @@ digraph returnValuesFromLambda_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file returnValuesFromLambda.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file returnValuesFromLambda.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter class B" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_2 {
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
6 [label="Exit class B" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
2 -> {3} [color=green];
|
2 -> {3} [color=green];
|
||||||
2 -> {6} [style=dotted];
|
|
||||||
2 -> {3} [style=dashed];
|
|
||||||
3 -> {4};
|
|
||||||
4 -> {5};
|
|
||||||
5 -> {6} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
7 [label="Enter class C" style="filled" fillcolor=red];
|
4 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter function <init>" style="filled" fillcolor=red];
|
5 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
9 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
6 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
10 [label="Exit function <init>" style="filled" fillcolor=red];
|
7 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
11 [label="Exit class C" style="filled" fillcolor=red];
|
8 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
4 -> {5} [color=green];
|
||||||
|
4 -> {8} [style=dotted];
|
||||||
|
4 -> {5} [style=dashed];
|
||||||
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
7 -> {8} [color=green];
|
7 -> {8} [color=green];
|
||||||
7 -> {11} [style=dotted];
|
|
||||||
7 -> {8} [style=dashed];
|
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
|
||||||
10 -> {11} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
12 [label="Enter function test_1" style="filled" fillcolor=red];
|
9 [label="Enter class C" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
13 [label="Enter block"];
|
10 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
14 [label="Postponed enter to lambda"];
|
11 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
subgraph cluster_7 {
|
12 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
13 [label="Exit class C" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
9 -> {10} [color=green];
|
||||||
|
9 -> {13} [style=dotted];
|
||||||
|
9 -> {10} [style=dashed];
|
||||||
|
10 -> {11};
|
||||||
|
11 -> {12};
|
||||||
|
12 -> {13} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=red
|
||||||
|
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
15 [label="Enter block"];
|
||||||
|
16 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
17 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter block"];
|
18 [label="Enter block"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
17 [label="Enter when"];
|
19 [label="Enter when"];
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
18 [label="Enter when branch condition "];
|
|
||||||
19 [label="Access variable R|<local>/b|"];
|
|
||||||
20 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
21 [label="Synthetic else branch"];
|
|
||||||
22 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
20 [label="Enter when branch condition "];
|
||||||
24 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
21 [label="Access variable R|<local>/b|"];
|
||||||
25 [label="Jump: ^@run R|/B.B|()"];
|
22 [label="Exit when branch condition"];
|
||||||
26 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
27 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
28 [label="Exit when branch result" style="filled" fillcolor=gray];
|
23 [label="Synthetic else branch"];
|
||||||
29 [label="Exit when"];
|
24 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Jump: ^@run R|/B.B|()"];
|
||||||
|
28 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
29 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
30 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
31 [label="Exit when"];
|
||||||
}
|
}
|
||||||
30 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
32 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
||||||
31 [label="Exit block"];
|
33 [label="Exit block"];
|
||||||
}
|
}
|
||||||
32 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
34 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
33 [label="Postponed exit from lambda"];
|
35 [label="Postponed exit from lambda"];
|
||||||
34 [label="Function call: R|kotlin/run|<R|A|>(...)" style="filled" fillcolor=yellow];
|
36 [label="Function call: R|kotlin/run|<R|A|>(...)" style="filled" fillcolor=yellow];
|
||||||
35 [label="Variable declaration: lval x: R|A|"];
|
37 [label="Variable declaration: lval x: R|A|"];
|
||||||
36 [label="Exit block"];
|
38 [label="Exit block"];
|
||||||
}
|
}
|
||||||
37 [label="Exit function test_1" style="filled" fillcolor=red];
|
39 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
12 -> {13};
|
14 -> {15};
|
||||||
13 -> {14};
|
|
||||||
14 -> {15 34};
|
|
||||||
14 -> {33} [style=dotted];
|
|
||||||
14 -> {15} [style=dashed];
|
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17 36};
|
||||||
|
16 -> {35} [style=dotted];
|
||||||
|
16 -> {17} [style=dashed];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21 22};
|
20 -> {21};
|
||||||
21 -> {29};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23 24};
|
||||||
23 -> {24};
|
23 -> {31};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {32};
|
25 -> {26};
|
||||||
25 -> {26} [style=dotted];
|
26 -> {27};
|
||||||
26 -> {27} [style=dotted];
|
27 -> {34};
|
||||||
27 -> {28} [style=dotted];
|
27 -> {28} [style=dotted];
|
||||||
28 -> {29} [style=dotted];
|
28 -> {29} [style=dotted];
|
||||||
29 -> {30};
|
29 -> {30} [style=dotted];
|
||||||
30 -> {31};
|
30 -> {31} [style=dotted];
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
|
37 -> {38};
|
||||||
subgraph cluster_12 {
|
|
||||||
color=red
|
|
||||||
38 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
39 [label="Enter block"];
|
|
||||||
40 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
42 [label="Enter block"];
|
|
||||||
43 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Jump: ^@run R|/C.C|()"];
|
|
||||||
45 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
46 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
47 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
48 [label="Postponed exit from lambda"];
|
|
||||||
49 [label="Function call: R|kotlin/run|<R|C|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
50 [label="Variable declaration: lval x: R|C|"];
|
|
||||||
51 [label="Exit block"];
|
|
||||||
}
|
|
||||||
52 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
|
||||||
40 -> {41 49};
|
subgraph cluster_13 {
|
||||||
40 -> {48} [style=dotted];
|
color=red
|
||||||
40 -> {41} [style=dashed];
|
40 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter block"];
|
||||||
|
42 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter block"];
|
||||||
|
45 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Jump: ^@run R|/C.C|()"];
|
||||||
|
47 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
48 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
49 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
50 [label="Postponed exit from lambda"];
|
||||||
|
51 [label="Function call: R|kotlin/run|<R|C|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
52 [label="Variable declaration: lval x: R|C|"];
|
||||||
|
53 [label="Exit block"];
|
||||||
|
}
|
||||||
|
54 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43 51};
|
||||||
|
42 -> {50} [style=dotted];
|
||||||
|
42 -> {43} [style=dashed];
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {47};
|
44 -> {45};
|
||||||
44 -> {45} [style=dotted];
|
45 -> {46};
|
||||||
45 -> {46} [style=dotted];
|
46 -> {49};
|
||||||
46 -> {47} [style=dotted];
|
46 -> {47} [style=dotted];
|
||||||
47 -> {48};
|
47 -> {48} [style=dotted];
|
||||||
48 -> {49};
|
48 -> {49} [style=dotted];
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
|
52 -> {53};
|
||||||
subgraph cluster_16 {
|
|
||||||
color=red
|
|
||||||
53 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
54 [label="Enter block"];
|
|
||||||
55 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
56 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
57 [label="Enter block"];
|
|
||||||
58 [label="Jump: ^test_3 Unit"];
|
|
||||||
59 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
60 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
61 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
62 [label="Postponed exit from lambda" style="filled" fillcolor=gray];
|
|
||||||
63 [label="Function call: R|kotlin/run|<R|kotlin/Nothing|>(...)" style="filled" fillcolor=gray];
|
|
||||||
64 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
65 [label="Variable declaration: lval x: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
|
||||||
66 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
67 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=red
|
||||||
|
55 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
56 [label="Enter block"];
|
||||||
|
57 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
58 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
59 [label="Enter block"];
|
||||||
|
60 [label="Jump: ^test_3 Unit"];
|
||||||
|
61 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
62 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
63 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
64 [label="Postponed exit from lambda" style="filled" fillcolor=gray];
|
||||||
|
65 [label="Function call: R|kotlin/run|<R|kotlin/Nothing|>(...)" style="filled" fillcolor=gray];
|
||||||
|
66 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
67 [label="Variable declaration: lval x: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
||||||
|
68 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
69 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
55 -> {62 63} [style=dotted];
|
|
||||||
55 -> {56} [style=dashed];
|
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {67};
|
57 -> {64 65} [style=dotted];
|
||||||
58 -> {59} [style=dotted];
|
57 -> {58} [style=dashed];
|
||||||
59 -> {60} [style=dotted];
|
58 -> {59};
|
||||||
|
59 -> {60};
|
||||||
|
60 -> {69};
|
||||||
60 -> {61} [style=dotted];
|
60 -> {61} [style=dotted];
|
||||||
61 -> {62} [style=dotted];
|
61 -> {62} [style=dotted];
|
||||||
62 -> {63} [style=dotted];
|
62 -> {63} [style=dotted];
|
||||||
@@ -211,5 +216,7 @@ digraph returnValuesFromLambda_kt {
|
|||||||
64 -> {65} [style=dotted];
|
64 -> {65} [style=dotted];
|
||||||
65 -> {66} [style=dotted];
|
65 -> {66} [style=dotted];
|
||||||
66 -> {67} [style=dotted];
|
66 -> {67} [style=dotted];
|
||||||
|
67 -> {68} [style=dotted];
|
||||||
|
68 -> {69} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+101
-94
@@ -5,145 +5,150 @@ digraph safeCalls_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file safeCalls.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file safeCalls.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function bar" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
5 [label="Exit function bar" style="filled" fillcolor=red];
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
6 [label="Enter class B" style="filled" fillcolor=red];
|
6 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
7 [label="Exit class B" style="filled" fillcolor=red];
|
7 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
6 -> {7} [color=green];
|
6 -> {7};
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function test_1" style="filled" fillcolor=red];
|
8 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
9 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
8 -> {9} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
10 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter block"];
|
11 [label="Enter block"];
|
||||||
10 [label="Access variable R|<local>/x|"];
|
12 [label="Access variable R|<local>/x|"];
|
||||||
11 [label="Enter safe call"];
|
|
||||||
12 [label="Function call: $subj$.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
13 [label="Enter safe call"];
|
13 [label="Enter safe call"];
|
||||||
14 [label="Const: String()"];
|
14 [label="Function call: $subj$.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
15 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
15 [label="Enter safe call"];
|
||||||
16 [label="Exit safe call"];
|
16 [label="Const: String()"];
|
||||||
17 [label="Exit safe call"];
|
17 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||||
18 [label="Exit block"];
|
18 [label="Exit safe call"];
|
||||||
|
19 [label="Exit safe call"];
|
||||||
|
20 [label="Exit block"];
|
||||||
}
|
}
|
||||||
19 [label="Exit function test_1" style="filled" fillcolor=red];
|
21 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
8 -> {9};
|
10 -> {11};
|
||||||
9 -> {10};
|
|
||||||
10 -> {11 16};
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13 16};
|
12 -> {13 18};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15 18};
|
||||||
15 -> {17};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {19};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
|
19 -> {20};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
20 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
21 [label="Enter block"];
|
|
||||||
22 [label="Access variable R|<local>/x|"];
|
|
||||||
23 [label="Enter safe call"];
|
|
||||||
24 [label="Access variable R|/B.foo|"];
|
|
||||||
25 [label="Enter safe call"];
|
|
||||||
26 [label="Access variable R|/B.bar|"];
|
|
||||||
27 [label="Exit safe call"];
|
|
||||||
28 [label="Exit safe call"];
|
|
||||||
29 [label="Exit block"];
|
|
||||||
}
|
|
||||||
30 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
|
||||||
22 -> {23 27};
|
|
||||||
23 -> {24};
|
|
||||||
24 -> {25 27};
|
|
||||||
25 -> {26};
|
|
||||||
26 -> {28};
|
|
||||||
27 -> {28};
|
|
||||||
28 -> {29};
|
|
||||||
29 -> {30};
|
|
||||||
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
31 [label="Enter function test_3" style="filled" fillcolor=red];
|
22 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter block"];
|
23 [label="Enter block"];
|
||||||
subgraph cluster_10 {
|
24 [label="Access variable R|<local>/x|"];
|
||||||
|
25 [label="Enter safe call"];
|
||||||
|
26 [label="Access variable R|/B.foo|"];
|
||||||
|
27 [label="Enter safe call"];
|
||||||
|
28 [label="Access variable R|/B.bar|"];
|
||||||
|
29 [label="Exit safe call"];
|
||||||
|
30 [label="Exit safe call"];
|
||||||
|
31 [label="Exit block"];
|
||||||
|
}
|
||||||
|
32 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
22 -> {23};
|
||||||
|
23 -> {24};
|
||||||
|
24 -> {25 29};
|
||||||
|
25 -> {26};
|
||||||
|
26 -> {27 29};
|
||||||
|
27 -> {28};
|
||||||
|
28 -> {30};
|
||||||
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=red
|
||||||
|
33 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
34 [label="Enter block"];
|
||||||
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
33 [label="Enter when"];
|
35 [label="Enter when"];
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter when branch condition "];
|
|
||||||
35 [label="Access variable R|<local>/x|"];
|
|
||||||
36 [label="Enter safe call"];
|
|
||||||
37 [label="Access variable R|<local>/y|"];
|
|
||||||
38 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
|
||||||
39 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
|
||||||
40 [label="Exit safe call"];
|
|
||||||
41 [label="Const: Null(null)"];
|
|
||||||
42 [label="Equality operator !="];
|
|
||||||
43 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
44 [label="Synthetic else branch"];
|
|
||||||
45 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
46 [label="Enter block"];
|
36 [label="Enter when branch condition "];
|
||||||
47 [label="Access variable R|<local>/y|"];
|
37 [label="Access variable R|<local>/x|"];
|
||||||
48 [label="Smart cast: R|<local>/y|"];
|
38 [label="Enter safe call"];
|
||||||
49 [label="Access variable R|kotlin/String.length|"];
|
39 [label="Access variable R|<local>/y|"];
|
||||||
50 [label="Exit block"];
|
40 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
||||||
|
41 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||||
|
42 [label="Exit safe call"];
|
||||||
|
43 [label="Const: Null(null)"];
|
||||||
|
44 [label="Equality operator !="];
|
||||||
|
45 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
51 [label="Exit when branch result"];
|
46 [label="Synthetic else branch"];
|
||||||
52 [label="Exit when"];
|
47 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
48 [label="Enter block"];
|
||||||
|
49 [label="Access variable R|<local>/y|"];
|
||||||
|
50 [label="Smart cast: R|<local>/y|"];
|
||||||
|
51 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
52 [label="Exit block"];
|
||||||
|
}
|
||||||
|
53 [label="Exit when branch result"];
|
||||||
|
54 [label="Exit when"];
|
||||||
}
|
}
|
||||||
53 [label="Exit block"];
|
55 [label="Exit block"];
|
||||||
}
|
}
|
||||||
54 [label="Exit function test_3" style="filled" fillcolor=red];
|
56 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
31 -> {32};
|
|
||||||
32 -> {33};
|
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36 40};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38 42};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44 45};
|
43 -> {44};
|
||||||
44 -> {52};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46 47};
|
||||||
46 -> {47};
|
46 -> {54};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
@@ -151,5 +156,7 @@ digraph safeCalls_kt {
|
|||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
|
54 -> {55};
|
||||||
|
55 -> {56};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+31
-24
@@ -5,37 +5,42 @@ digraph simple_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
0 [label="Enter file simple.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file simple.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
2 [label="Exit block"];
|
|
||||||
}
|
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test" style="filled" fillcolor=red];
|
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
6 [label="Const: Int(1)"];
|
4 [label="Exit block"];
|
||||||
7 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
8 [label="Access variable R|<local>/x|"];
|
|
||||||
9 [label="Const: Int(1)"];
|
|
||||||
10 [label="Function call: R|<local>/x|.R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
|
||||||
11 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
|
||||||
12 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
|
||||||
13 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
14 [label="Exit function test" style="filled" fillcolor=red];
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
|
8 [label="Const: Int(1)"];
|
||||||
|
9 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
10 [label="Access variable R|<local>/x|"];
|
||||||
|
11 [label="Const: Int(1)"];
|
||||||
|
12 [label="Function call: R|<local>/x|.R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
||||||
|
13 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||||
|
14 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||||
|
15 [label="Exit block"];
|
||||||
|
}
|
||||||
|
16 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
@@ -44,5 +49,7 @@ digraph simple_kt {
|
|||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
|
14 -> {15};
|
||||||
|
15 -> {16};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+235
-228
@@ -5,75 +5,80 @@ digraph tryCatch_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file tryCatch.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file tryCatch.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
2 [label="Try expression enter"];
|
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Try main block enter"];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
4 [label="Enter block"];
|
|
||||||
5 [label="Const: Int(1)"];
|
|
||||||
6 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
7 [label="Exit block"];
|
|
||||||
}
|
|
||||||
8 [label="Try main block exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Catch enter"];
|
|
||||||
10 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
11 [label="Enter block"];
|
|
||||||
12 [label="Const: Int(2)"];
|
|
||||||
13 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
|
||||||
14 [label="Exit block"];
|
|
||||||
}
|
|
||||||
15 [label="Catch exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
16 [label="Catch enter"];
|
|
||||||
17 [label="Variable declaration: e: R|kotlin/Exception|"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
18 [label="Enter block"];
|
|
||||||
19 [label="Const: Int(3)"];
|
|
||||||
20 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
|
||||||
21 [label="Exit block"];
|
|
||||||
}
|
|
||||||
22 [label="Catch exit"];
|
|
||||||
}
|
|
||||||
23 [label="Try expression exit"];
|
|
||||||
}
|
|
||||||
24 [label="Exit block"];
|
|
||||||
}
|
|
||||||
25 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3 9 16};
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
|
color=blue
|
||||||
|
3 [label="Enter block"];
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=blue
|
||||||
|
4 [label="Try expression enter"];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
5 [label="Try main block enter"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
6 [label="Enter block"];
|
||||||
|
7 [label="Const: Int(1)"];
|
||||||
|
8 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
9 [label="Exit block"];
|
||||||
|
}
|
||||||
|
10 [label="Try main block exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Catch enter"];
|
||||||
|
12 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
13 [label="Enter block"];
|
||||||
|
14 [label="Const: Int(2)"];
|
||||||
|
15 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||||
|
16 [label="Exit block"];
|
||||||
|
}
|
||||||
|
17 [label="Catch exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Catch enter"];
|
||||||
|
19 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter block"];
|
||||||
|
21 [label="Const: Int(3)"];
|
||||||
|
22 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
||||||
|
23 [label="Exit block"];
|
||||||
|
}
|
||||||
|
24 [label="Catch exit"];
|
||||||
|
}
|
||||||
|
25 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
26 [label="Exit block"];
|
||||||
|
}
|
||||||
|
27 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5 11 18};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9 16 23};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11 18 25};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {23};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {25};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
@@ -81,56 +86,56 @@ digraph tryCatch_kt {
|
|||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
|
25 -> {26};
|
||||||
subgraph cluster_9 {
|
|
||||||
color=red
|
|
||||||
26 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
27 [label="Enter block"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
28 [label="Try expression enter"];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
29 [label="Try main block enter"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
30 [label="Enter block"];
|
|
||||||
31 [label="Const: Int(1)"];
|
|
||||||
32 [label="Exit block"];
|
|
||||||
}
|
|
||||||
33 [label="Try main block exit"];
|
|
||||||
}
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Catch enter"];
|
|
||||||
35 [label="Variable declaration: e: R|kotlin/Exception|"];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
36 [label="Enter block"];
|
|
||||||
37 [label="Const: Int(2)"];
|
|
||||||
38 [label="Exit block"];
|
|
||||||
}
|
|
||||||
39 [label="Catch exit"];
|
|
||||||
}
|
|
||||||
40 [label="Try expression exit"];
|
|
||||||
}
|
|
||||||
41 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
42 [label="Exit block"];
|
|
||||||
}
|
|
||||||
43 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
|
||||||
28 -> {29 34};
|
subgraph cluster_10 {
|
||||||
|
color=red
|
||||||
|
28 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
29 [label="Enter block"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
30 [label="Try expression enter"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
31 [label="Try main block enter"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
32 [label="Enter block"];
|
||||||
|
33 [label="Const: Int(1)"];
|
||||||
|
34 [label="Exit block"];
|
||||||
|
}
|
||||||
|
35 [label="Try main block exit"];
|
||||||
|
}
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Catch enter"];
|
||||||
|
37 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
38 [label="Enter block"];
|
||||||
|
39 [label="Const: Int(2)"];
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Catch exit"];
|
||||||
|
}
|
||||||
|
42 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
43 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
44 [label="Exit block"];
|
||||||
|
}
|
||||||
|
45 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31 36};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34 40};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36 42};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
@@ -138,195 +143,197 @@ digraph tryCatch_kt {
|
|||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
|
43 -> {44};
|
||||||
|
44 -> {45};
|
||||||
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=red
|
color=red
|
||||||
44 [label="Enter function test_3" style="filled" fillcolor=red];
|
46 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
45 [label="Enter block"];
|
47 [label="Enter block"];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
46 [label="Enter while loop"];
|
48 [label="Enter while loop"];
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
47 [label="Enter loop condition"];
|
|
||||||
48 [label="Const: Boolean(true)"];
|
|
||||||
49 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
50 [label="Enter loop block"];
|
49 [label="Enter loop condition"];
|
||||||
subgraph cluster_21 {
|
50 [label="Const: Boolean(true)"];
|
||||||
|
51 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
52 [label="Enter loop block"];
|
||||||
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
51 [label="Enter block"];
|
53 [label="Enter block"];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
52 [label="Try expression enter"];
|
54 [label="Try expression enter"];
|
||||||
subgraph cluster_23 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
53 [label="Try main block enter"];
|
55 [label="Try main block enter"];
|
||||||
subgraph cluster_24 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
54 [label="Enter block"];
|
56 [label="Enter block"];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
55 [label="Enter when"];
|
57 [label="Enter when"];
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
56 [label="Enter when branch condition "];
|
|
||||||
57 [label="Access variable R|<local>/b|"];
|
|
||||||
58 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
59 [label="Synthetic else branch"];
|
|
||||||
60 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
61 [label="Enter block"];
|
58 [label="Enter when branch condition "];
|
||||||
62 [label="Jump: ^test_3 Unit"];
|
59 [label="Access variable R|<local>/b|"];
|
||||||
63 [label="Stub" style="filled" fillcolor=gray];
|
60 [label="Exit when branch condition"];
|
||||||
64 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
65 [label="Exit when branch result" style="filled" fillcolor=gray];
|
61 [label="Synthetic else branch"];
|
||||||
66 [label="Exit when"];
|
62 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_28 {
|
||||||
67 [label="Const: Int(1)"];
|
|
||||||
68 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
69 [label="Enter when"];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
color=blue
|
||||||
70 [label="Enter when branch condition "];
|
63 [label="Enter block"];
|
||||||
71 [label="Access variable R|<local>/b|"];
|
64 [label="Jump: ^test_3 Unit"];
|
||||||
72 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
65 [label="Stub" style="filled" fillcolor=gray];
|
||||||
73 [label="Exit when branch condition"];
|
66 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
74 [label="Synthetic else branch"];
|
67 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
75 [label="Enter when branch result"];
|
68 [label="Exit when"];
|
||||||
|
}
|
||||||
|
69 [label="Const: Int(1)"];
|
||||||
|
70 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
71 [label="Enter when"];
|
||||||
subgraph cluster_30 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
76 [label="Enter block"];
|
72 [label="Enter when branch condition "];
|
||||||
77 [label="Jump: break@@@[Boolean(true)] "];
|
73 [label="Access variable R|<local>/b|"];
|
||||||
78 [label="Stub" style="filled" fillcolor=gray];
|
74 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
79 [label="Exit block" style="filled" fillcolor=gray];
|
75 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
80 [label="Exit when branch result" style="filled" fillcolor=gray];
|
76 [label="Synthetic else branch"];
|
||||||
81 [label="Exit when"];
|
77 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
78 [label="Enter block"];
|
||||||
|
79 [label="Jump: break@@@[Boolean(true)] "];
|
||||||
|
80 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
81 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
82 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
83 [label="Exit when"];
|
||||||
}
|
}
|
||||||
82 [label="Exit block"];
|
84 [label="Exit block"];
|
||||||
}
|
}
|
||||||
83 [label="Try main block exit"];
|
85 [label="Try main block exit"];
|
||||||
}
|
}
|
||||||
subgraph cluster_31 {
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
84 [label="Catch enter"];
|
86 [label="Catch enter"];
|
||||||
85 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
87 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||||
subgraph cluster_32 {
|
subgraph cluster_33 {
|
||||||
color=blue
|
color=blue
|
||||||
86 [label="Enter block"];
|
88 [label="Enter block"];
|
||||||
87 [label="Jump: break@@@[Boolean(true)] "];
|
89 [label="Jump: break@@@[Boolean(true)] "];
|
||||||
88 [label="Stub" style="filled" fillcolor=gray];
|
90 [label="Stub" style="filled" fillcolor=gray];
|
||||||
89 [label="Exit block" style="filled" fillcolor=gray];
|
91 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
90 [label="Catch exit" style="filled" fillcolor=gray];
|
92 [label="Catch exit" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
subgraph cluster_33 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
91 [label="Catch enter"];
|
93 [label="Catch enter"];
|
||||||
92 [label="Variable declaration: e: R|kotlin/Exception|"];
|
94 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||||
subgraph cluster_34 {
|
subgraph cluster_35 {
|
||||||
color=blue
|
color=blue
|
||||||
93 [label="Enter block"];
|
95 [label="Enter block"];
|
||||||
94 [label="Jump: continue@@@[Boolean(true)] "];
|
96 [label="Jump: continue@@@[Boolean(true)] "];
|
||||||
95 [label="Stub" style="filled" fillcolor=gray];
|
97 [label="Stub" style="filled" fillcolor=gray];
|
||||||
96 [label="Exit block" style="filled" fillcolor=gray];
|
98 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
97 [label="Catch exit" style="filled" fillcolor=gray];
|
99 [label="Catch exit" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
98 [label="Try expression exit"];
|
100 [label="Try expression exit"];
|
||||||
}
|
}
|
||||||
99 [label="Const: Int(2)"];
|
101 [label="Const: Int(2)"];
|
||||||
100 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
102 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||||
101 [label="Exit block"];
|
103 [label="Exit block"];
|
||||||
}
|
}
|
||||||
102 [label="Exit loop block"];
|
104 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
103 [label="Exit while loop"];
|
105 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
104 [label="Const: Int(3)"];
|
106 [label="Const: Int(3)"];
|
||||||
105 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
107 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
||||||
106 [label="Exit block"];
|
108 [label="Exit block"];
|
||||||
}
|
}
|
||||||
107 [label="Exit function test_3" style="filled" fillcolor=red];
|
109 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
44 -> {45};
|
|
||||||
45 -> {46};
|
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
49 -> {103} [style=dotted];
|
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53 84 91};
|
51 -> {105} [style=dotted];
|
||||||
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55 86 93};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59 60};
|
58 -> {59};
|
||||||
59 -> {66};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61 62};
|
||||||
61 -> {62};
|
61 -> {68};
|
||||||
62 -> {107};
|
62 -> {63};
|
||||||
62 -> {63} [style=dotted];
|
63 -> {64};
|
||||||
63 -> {64} [style=dotted];
|
64 -> {109};
|
||||||
64 -> {65} [style=dotted];
|
64 -> {65} [style=dotted];
|
||||||
65 -> {66} [style=dotted];
|
65 -> {66} [style=dotted];
|
||||||
66 -> {67};
|
66 -> {67} [style=dotted];
|
||||||
67 -> {68};
|
67 -> {68} [style=dotted];
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73 84 91};
|
72 -> {73};
|
||||||
73 -> {74 75};
|
73 -> {74};
|
||||||
74 -> {81};
|
74 -> {75 86 93};
|
||||||
75 -> {76};
|
75 -> {76 77};
|
||||||
76 -> {77};
|
76 -> {83};
|
||||||
77 -> {103};
|
77 -> {78};
|
||||||
77 -> {78} [style=dotted];
|
78 -> {79};
|
||||||
78 -> {79} [style=dotted];
|
79 -> {105};
|
||||||
79 -> {80} [style=dotted];
|
79 -> {80} [style=dotted];
|
||||||
80 -> {81} [style=dotted];
|
80 -> {81} [style=dotted];
|
||||||
81 -> {82};
|
81 -> {82} [style=dotted];
|
||||||
82 -> {83};
|
82 -> {83} [style=dotted];
|
||||||
83 -> {84 91 98};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86 93 100};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {103};
|
87 -> {88};
|
||||||
87 -> {88} [style=dotted];
|
88 -> {89};
|
||||||
88 -> {89} [style=dotted];
|
89 -> {105};
|
||||||
89 -> {90} [style=dotted];
|
89 -> {90} [style=dotted];
|
||||||
90 -> {98} [style=dotted];
|
90 -> {91} [style=dotted];
|
||||||
91 -> {92};
|
91 -> {92} [style=dotted];
|
||||||
92 -> {93};
|
92 -> {100} [style=dotted];
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {47} [color=green style=dashed];
|
94 -> {95};
|
||||||
94 -> {95} [style=dotted];
|
95 -> {96};
|
||||||
95 -> {96} [style=dotted];
|
96 -> {49} [color=green style=dashed];
|
||||||
96 -> {97} [style=dotted];
|
96 -> {97} [style=dotted];
|
||||||
97 -> {98} [style=dotted];
|
97 -> {98} [style=dotted];
|
||||||
98 -> {99};
|
98 -> {99} [style=dotted];
|
||||||
99 -> {100};
|
99 -> {100} [style=dotted];
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {47} [color=green style=dashed];
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {49} [color=green style=dashed];
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
|
107 -> {108};
|
||||||
|
108 -> {109};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+96
-89
@@ -5,127 +5,134 @@ digraph variableInitializedInTryBlock_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test" style="filled" fillcolor=red];
|
0 [label="Enter file variableInitializedInTryBlock.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file variableInitializedInTryBlock.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Variable declaration: lval b: R|kotlin/Boolean|"];
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=blue
|
color=red
|
||||||
3 [label="Try expression enter"];
|
2 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
4 [label="Try main block enter"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
4 [label="Variable declaration: lval b: R|kotlin/Boolean|"];
|
||||||
color=blue
|
subgraph cluster_3 {
|
||||||
5 [label="Enter block"];
|
color=blue
|
||||||
6 [label="Function call: R|/getStringOrNull|()" style="filled" fillcolor=yellow];
|
5 [label="Try expression enter"];
|
||||||
7 [label="Exit lhs of ?:"];
|
subgraph cluster_4 {
|
||||||
8 [label="Enter rhs of ?:"];
|
color=blue
|
||||||
9 [label="Jump: ^test Unit"];
|
6 [label="Try main block enter"];
|
||||||
10 [label="Stub" style="filled" fillcolor=gray];
|
subgraph cluster_5 {
|
||||||
11 [label="Lhs of ?: is not null"];
|
color=blue
|
||||||
12 [label="Exit ?:"];
|
7 [label="Enter block"];
|
||||||
13 [label="Variable declaration: lval s: R|kotlin/String|"];
|
8 [label="Function call: R|/getStringOrNull|()" style="filled" fillcolor=yellow];
|
||||||
14 [label="Access variable R|<local>/s|"];
|
9 [label="Exit lhs of ?:"];
|
||||||
15 [label="Access variable R|kotlin/String.length|"];
|
10 [label="Enter rhs of ?:"];
|
||||||
16 [label="Const: Int(0)"];
|
11 [label="Jump: ^test Unit"];
|
||||||
17 [label="Equality operator !="];
|
12 [label="Stub" style="filled" fillcolor=gray];
|
||||||
18 [label="Assignment: R|<local>/b|"];
|
13 [label="Lhs of ?: is not null"];
|
||||||
19 [label="Exit block"];
|
14 [label="Exit ?:"];
|
||||||
}
|
15 [label="Variable declaration: lval s: R|kotlin/String|"];
|
||||||
20 [label="Try main block exit"];
|
16 [label="Access variable R|<local>/s|"];
|
||||||
}
|
17 [label="Access variable R|kotlin/String.length|"];
|
||||||
subgraph cluster_5 {
|
18 [label="Const: Int(0)"];
|
||||||
color=blue
|
19 [label="Equality operator !="];
|
||||||
21 [label="Enter finally"];
|
20 [label="Assignment: R|<local>/b|"];
|
||||||
subgraph cluster_6 {
|
21 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
22 [label="Enter block"];
|
22 [label="Try main block exit"];
|
||||||
23 [label="Function call: R|/test|()" style="filled" fillcolor=yellow];
|
}
|
||||||
24 [label="Exit block"];
|
subgraph cluster_6 {
|
||||||
}
|
color=blue
|
||||||
25 [label="Exit finally"];
|
23 [label="Enter finally"];
|
||||||
}
|
subgraph cluster_7 {
|
||||||
26 [label="Try expression exit"];
|
color=blue
|
||||||
}
|
24 [label="Enter block"];
|
||||||
27 [label="Access variable R|<local>/b|"];
|
25 [label="Function call: R|/test|()" style="filled" fillcolor=yellow];
|
||||||
28 [label="Function call: R|/takeBoolean|(...)" style="filled" fillcolor=yellow];
|
26 [label="Exit block"];
|
||||||
29 [label="Exit block"];
|
}
|
||||||
}
|
27 [label="Exit finally"];
|
||||||
30 [label="Exit function test" style="filled" fillcolor=red];
|
}
|
||||||
|
28 [label="Try expression exit"];
|
||||||
|
}
|
||||||
|
29 [label="Access variable R|<local>/b|"];
|
||||||
|
30 [label="Function call: R|/takeBoolean|(...)" style="filled" fillcolor=yellow];
|
||||||
|
31 [label="Exit block"];
|
||||||
|
}
|
||||||
|
32 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
3 -> {21} [label="onUncaughtException"];
|
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
|
5 -> {23} [label="onUncaughtException"];
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
6 -> {21} [label="onUncaughtException"];
|
7 -> {8};
|
||||||
7 -> {8 11};
|
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {21} [label="return@/test"];
|
8 -> {23} [label="onUncaughtException"];
|
||||||
9 -> {10} [style=dotted];
|
9 -> {10 13};
|
||||||
10 -> {12} [style=dotted];
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {23} [label="return@/test"];
|
||||||
12 -> {13};
|
11 -> {12} [style=dotted];
|
||||||
|
12 -> {14} [style=dotted];
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
14 -> {21} [label="onUncaughtException"];
|
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
15 -> {21} [label="onUncaughtException"];
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
|
16 -> {23} [label="onUncaughtException"];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
17 -> {21} [label="onUncaughtException"];
|
17 -> {23} [label="onUncaughtException"];
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
|
19 -> {23} [label="onUncaughtException"];
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
25 -> {30} [label="return@/test"];
|
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
|
27 -> {32} [label="return@/test"];
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
subgraph cluster_7 {
|
|
||||||
color=red
|
|
||||||
31 [label="Enter function takeBoolean" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
32 [label="Enter block"];
|
|
||||||
33 [label="Exit block"];
|
|
||||||
}
|
|
||||||
34 [label="Exit function takeBoolean" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
|
||||||
33 -> {34};
|
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_8 {
|
||||||
color=red
|
color=red
|
||||||
35 [label="Enter function getStringOrNull" style="filled" fillcolor=red];
|
33 [label="Enter function takeBoolean" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
36 [label="Enter block"];
|
34 [label="Enter block"];
|
||||||
37 [label="Const: String(hello)"];
|
35 [label="Exit block"];
|
||||||
38 [label="Jump: ^getStringOrNull String(hello)"];
|
|
||||||
39 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
40 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
41 [label="Exit function getStringOrNull" style="filled" fillcolor=red];
|
36 [label="Exit function takeBoolean" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
33 -> {34};
|
||||||
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=red
|
||||||
|
37 [label="Enter function getStringOrNull" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
38 [label="Enter block"];
|
||||||
|
39 [label="Const: String(hello)"];
|
||||||
|
40 [label="Jump: ^getStringOrNull String(hello)"];
|
||||||
|
41 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
42 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
43 [label="Exit function getStringOrNull" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {41};
|
38 -> {39};
|
||||||
38 -> {39} [style=dotted];
|
39 -> {40};
|
||||||
39 -> {40} [style=dotted];
|
40 -> {43};
|
||||||
40 -> {41} [style=dotted];
|
40 -> {41} [style=dotted];
|
||||||
|
41 -> {42} [style=dotted];
|
||||||
|
42 -> {43} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+135
-128
@@ -5,210 +5,215 @@ digraph when_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file when.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file when.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Enter when branch condition "];
|
|
||||||
4 [label="Access variable R|<local>/x|"];
|
|
||||||
5 [label="Const: Int(1)"];
|
|
||||||
6 [label="Equality operator =="];
|
|
||||||
7 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter when branch condition "];
|
5 [label="Enter when branch condition "];
|
||||||
9 [label="Access variable R|<local>/x|"];
|
6 [label="Access variable R|<local>/x|"];
|
||||||
10 [label="Const: Int(2)"];
|
7 [label="Const: Int(1)"];
|
||||||
11 [label="Function call: R|<local>/x|.R|kotlin/Int.rem|(...)" style="filled" fillcolor=yellow];
|
8 [label="Equality operator =="];
|
||||||
12 [label="Const: Int(0)"];
|
9 [label="Exit when branch condition"];
|
||||||
13 [label="Equality operator =="];
|
|
||||||
14 [label="Exit when branch condition"];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter when branch condition "];
|
10 [label="Enter when branch condition "];
|
||||||
16 [label="Const: Int(1)"];
|
11 [label="Access variable R|<local>/x|"];
|
||||||
17 [label="Const: Int(1)"];
|
12 [label="Const: Int(2)"];
|
||||||
18 [label="Function call: Int(1).R|kotlin/Int.minus|(...)" style="filled" fillcolor=yellow];
|
13 [label="Function call: R|<local>/x|.R|kotlin/Int.rem|(...)" style="filled" fillcolor=yellow];
|
||||||
19 [label="Const: Int(0)"];
|
14 [label="Const: Int(0)"];
|
||||||
20 [label="Equality operator =="];
|
15 [label="Equality operator =="];
|
||||||
21 [label="Exit when branch condition"];
|
16 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
22 [label="Enter when branch condition else"];
|
17 [label="Enter when branch condition "];
|
||||||
|
18 [label="Const: Int(1)"];
|
||||||
|
19 [label="Const: Int(1)"];
|
||||||
|
20 [label="Function call: Int(1).R|kotlin/Int.minus|(...)" style="filled" fillcolor=yellow];
|
||||||
|
21 [label="Const: Int(0)"];
|
||||||
|
22 [label="Equality operator =="];
|
||||||
23 [label="Exit when branch condition"];
|
23 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
24 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
25 [label="Enter block"];
|
24 [label="Enter when branch condition else"];
|
||||||
26 [label="Const: Int(5)"];
|
25 [label="Exit when branch condition"];
|
||||||
27 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
28 [label="Exit when branch result"];
|
26 [label="Enter when branch result"];
|
||||||
29 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
30 [label="Enter block"];
|
27 [label="Enter block"];
|
||||||
31 [label="Jump: ^test_1 Unit"];
|
28 [label="Const: Int(5)"];
|
||||||
32 [label="Stub" style="filled" fillcolor=gray];
|
29 [label="Exit block"];
|
||||||
33 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
34 [label="Exit when branch result" style="filled" fillcolor=gray];
|
30 [label="Exit when branch result"];
|
||||||
35 [label="Enter when branch result"];
|
31 [label="Enter when branch result"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
36 [label="Enter block"];
|
32 [label="Enter block"];
|
||||||
37 [label="Const: Int(20)"];
|
33 [label="Jump: ^test_1 Unit"];
|
||||||
38 [label="Exit block"];
|
34 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
35 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
39 [label="Exit when branch result"];
|
36 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
40 [label="Enter when branch result"];
|
37 [label="Enter when branch result"];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
41 [label="Enter block"];
|
38 [label="Enter block"];
|
||||||
42 [label="Const: Int(10)"];
|
39 [label="Const: Int(20)"];
|
||||||
43 [label="Exit block"];
|
40 [label="Exit block"];
|
||||||
}
|
}
|
||||||
44 [label="Exit when branch result"];
|
41 [label="Exit when branch result"];
|
||||||
45 [label="Exit when"];
|
42 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter block"];
|
||||||
|
44 [label="Const: Int(10)"];
|
||||||
|
45 [label="Exit block"];
|
||||||
|
}
|
||||||
|
46 [label="Exit when branch result"];
|
||||||
|
47 [label="Exit when"];
|
||||||
}
|
}
|
||||||
46 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
48 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||||
47 [label="Exit block"];
|
49 [label="Exit block"];
|
||||||
}
|
}
|
||||||
48 [label="Exit function test_1" style="filled" fillcolor=red];
|
50 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 40};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 42};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15 35};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17 37};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22 29};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24 31};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {45};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {47};
|
||||||
31 -> {48};
|
31 -> {32};
|
||||||
31 -> {32} [style=dotted];
|
32 -> {33};
|
||||||
32 -> {33} [style=dotted];
|
33 -> {50};
|
||||||
33 -> {34} [style=dotted];
|
33 -> {34} [style=dotted];
|
||||||
34 -> {45} [style=dotted];
|
34 -> {35} [style=dotted];
|
||||||
35 -> {36};
|
35 -> {36} [style=dotted];
|
||||||
36 -> {37};
|
36 -> {47} [style=dotted];
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {45};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {47};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
|
48 -> {49};
|
||||||
subgraph cluster_11 {
|
49 -> {50};
|
||||||
color=red
|
|
||||||
49 [label="Enter class A" style="filled" fillcolor=red];
|
|
||||||
50 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
49 -> {50} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=red
|
color=red
|
||||||
51 [label="Enter class B" style="filled" fillcolor=red];
|
51 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
52 [label="Exit class B" style="filled" fillcolor=red];
|
52 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
51 -> {52} [color=green];
|
51 -> {52} [color=green];
|
||||||
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=red
|
color=red
|
||||||
53 [label="Enter function test_2" style="filled" fillcolor=red];
|
53 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
subgraph cluster_14 {
|
54 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
54 [label="Enter block"];
|
53 -> {54} [color=green];
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
subgraph cluster_14 {
|
||||||
55 [label="Enter when"];
|
color=red
|
||||||
subgraph cluster_16 {
|
55 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
color=blue
|
subgraph cluster_15 {
|
||||||
56 [label="Enter when branch condition "];
|
color=blue
|
||||||
subgraph cluster_17 {
|
56 [label="Enter block"];
|
||||||
color=blue
|
subgraph cluster_16 {
|
||||||
57 [label="Enter &&"];
|
color=blue
|
||||||
58 [label="Access variable R|<local>/x|"];
|
57 [label="Enter when"];
|
||||||
59 [label="Type operator: (R|<local>/x| is R|A|)"];
|
subgraph cluster_17 {
|
||||||
60 [label="Exit left part of &&"];
|
color=blue
|
||||||
61 [label="Enter right part of &&"];
|
58 [label="Enter when branch condition "];
|
||||||
62 [label="Access variable R|<local>/x|"];
|
subgraph cluster_18 {
|
||||||
63 [label="Smart cast: R|<local>/x|"];
|
color=blue
|
||||||
64 [label="Type operator: (R|<local>/x| is R|B|)"];
|
59 [label="Enter &&"];
|
||||||
65 [label="Exit &&"];
|
60 [label="Access variable R|<local>/x|"];
|
||||||
}
|
61 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||||
66 [label="Exit when branch condition"];
|
62 [label="Exit left part of &&"];
|
||||||
}
|
63 [label="Enter right part of &&"];
|
||||||
67 [label="Synthetic else branch"];
|
64 [label="Access variable R|<local>/x|"];
|
||||||
68 [label="Enter when branch result"];
|
65 [label="Smart cast: R|<local>/x|"];
|
||||||
subgraph cluster_18 {
|
66 [label="Type operator: (R|<local>/x| is R|B|)"];
|
||||||
color=blue
|
67 [label="Exit &&"];
|
||||||
69 [label="Enter block"];
|
}
|
||||||
70 [label="Access variable R|<local>/x|"];
|
68 [label="Exit when branch condition"];
|
||||||
71 [label="Smart cast: R|<local>/x|"];
|
}
|
||||||
72 [label="Type operator: (R|<local>/x| is R|A|)"];
|
69 [label="Synthetic else branch"];
|
||||||
73 [label="Exit block"];
|
70 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_19 {
|
||||||
74 [label="Exit when branch result"];
|
color=blue
|
||||||
75 [label="Exit when"];
|
71 [label="Enter block"];
|
||||||
}
|
72 [label="Access variable R|<local>/x|"];
|
||||||
76 [label="Exit block"];
|
73 [label="Smart cast: R|<local>/x|"];
|
||||||
}
|
74 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||||
77 [label="Exit function test_2" style="filled" fillcolor=red];
|
75 [label="Exit block"];
|
||||||
|
}
|
||||||
|
76 [label="Exit when branch result"];
|
||||||
|
77 [label="Exit when"];
|
||||||
|
}
|
||||||
|
78 [label="Exit block"];
|
||||||
|
}
|
||||||
|
79 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
53 -> {54};
|
|
||||||
54 -> {55};
|
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61 65};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63 67};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67 68};
|
66 -> {67};
|
||||||
67 -> {75};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69 70};
|
||||||
69 -> {70};
|
69 -> {77};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
@@ -216,5 +221,7 @@ digraph when_kt {
|
|||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
|
77 -> {78};
|
||||||
|
78 -> {79};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,52 +5,59 @@ digraph classCallInLambda_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test" style="filled" fillcolor=red];
|
0 [label="Enter file classCallInLambda.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file classCallInLambda.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
2 [label="Access variable R|<local>/x|"];
|
4 [label="Access variable R|<local>/x|"];
|
||||||
3 [label="Postponed enter to lambda"];
|
5 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
4 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
6 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter block"];
|
7 [label="Enter block"];
|
||||||
6 [label="Access variable R|<local>/it|"];
|
8 [label="Access variable R|<local>/it|"];
|
||||||
7 [label="::class call"];
|
9 [label="::class call"];
|
||||||
8 [label="Exit block"];
|
10 [label="Exit block"];
|
||||||
}
|
}
|
||||||
9 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
11 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
10 [label="Postponed exit from lambda"];
|
12 [label="Postponed exit from lambda"];
|
||||||
11 [label="Function call: R|<local>/x|.R|kotlin/let|<R|kotlin/String|, R|kotlin/reflect/KClass<out kotlin/String>|>(...)" style="filled" fillcolor=yellow];
|
13 [label="Function call: R|<local>/x|.R|kotlin/let|<R|kotlin/String|, R|kotlin/reflect/KClass<out kotlin/String>|>(...)" style="filled" fillcolor=yellow];
|
||||||
12 [label="Jump: ^test R|<local>/x|.R|kotlin/let|<R|kotlin/String|, R|kotlin/reflect/KClass<out kotlin/String>|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|kotlin/reflect/KClass<out kotlin/String>| <inline=Inline, kind=EXACTLY_ONCE> {
|
14 [label="Jump: ^test R|<local>/x|.R|kotlin/let|<R|kotlin/String|, R|kotlin/reflect/KClass<out kotlin/String>|>(<L> = let@fun <anonymous>(it: R|kotlin/String|): R|kotlin/reflect/KClass<out kotlin/String>| <inline=Inline, kind=EXACTLY_ONCE> {
|
||||||
^ <getClass>(R|<local>/it|)
|
^ <getClass>(R|<local>/it|)
|
||||||
}
|
}
|
||||||
)"];
|
)"];
|
||||||
13 [label="Stub" style="filled" fillcolor=gray];
|
15 [label="Stub" style="filled" fillcolor=gray];
|
||||||
14 [label="Exit block" style="filled" fillcolor=gray];
|
16 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
15 [label="Exit function test" style="filled" fillcolor=red];
|
17 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4 11};
|
3 -> {4};
|
||||||
3 -> {10} [style=dotted];
|
|
||||||
3 -> {4} [style=dashed];
|
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6 13};
|
||||||
|
5 -> {12} [style=dotted];
|
||||||
|
5 -> {6} [style=dashed];
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {15};
|
12 -> {13};
|
||||||
12 -> {13} [style=dotted];
|
13 -> {14};
|
||||||
13 -> {14} [style=dotted];
|
14 -> {17};
|
||||||
14 -> {15} [style=dotted];
|
14 -> {15} [style=dotted];
|
||||||
|
15 -> {16} [style=dotted];
|
||||||
|
16 -> {17} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,96 +5,103 @@ digraph elvisReturnSimple_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function stringReturnInLeftLen" style="filled" fillcolor=red];
|
0 [label="Enter file elvisReturnSimple.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file elvisReturnSimple.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function stringReturnInLeftLen" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Enter when branch condition "];
|
|
||||||
4 [label="Access variable R|<local>/s|"];
|
|
||||||
5 [label="Const: Null(null)"];
|
|
||||||
6 [label="Equality operator !="];
|
|
||||||
7 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter when branch condition else"];
|
5 [label="Enter when branch condition "];
|
||||||
|
6 [label="Access variable R|<local>/s|"];
|
||||||
|
7 [label="Const: Null(null)"];
|
||||||
|
8 [label="Equality operator !="];
|
||||||
9 [label="Exit when branch condition"];
|
9 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
10 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
11 [label="Enter block"];
|
10 [label="Enter when branch condition else"];
|
||||||
12 [label="Const: Null(null)"];
|
11 [label="Exit when branch condition"];
|
||||||
13 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
14 [label="Exit when branch result"];
|
12 [label="Enter when branch result"];
|
||||||
15 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter block"];
|
13 [label="Enter block"];
|
||||||
17 [label="Access variable R|<local>/s|"];
|
14 [label="Const: Null(null)"];
|
||||||
18 [label="Smart cast: R|<local>/s|"];
|
15 [label="Exit block"];
|
||||||
19 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
20 [label="Jump: ^stringReturnInLeftLen R|<local>/s|.R|kotlin/String.length|"];
|
|
||||||
21 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
22 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
23 [label="Exit when branch result" style="filled" fillcolor=gray];
|
16 [label="Exit when branch result"];
|
||||||
24 [label="Exit when"];
|
17 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter block"];
|
||||||
|
19 [label="Access variable R|<local>/s|"];
|
||||||
|
20 [label="Smart cast: R|<local>/s|"];
|
||||||
|
21 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
22 [label="Jump: ^stringReturnInLeftLen R|<local>/s|.R|kotlin/String.length|"];
|
||||||
|
23 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
24 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
25 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
26 [label="Exit when"];
|
||||||
}
|
}
|
||||||
25 [label="Exit lhs of ?:"];
|
27 [label="Exit lhs of ?:"];
|
||||||
26 [label="Enter rhs of ?:"];
|
28 [label="Enter rhs of ?:"];
|
||||||
27 [label="Const: Int(0)"];
|
29 [label="Const: Int(0)"];
|
||||||
28 [label="Jump: ^stringReturnInLeftLen Int(0)"];
|
30 [label="Jump: ^stringReturnInLeftLen Int(0)"];
|
||||||
29 [label="Stub" style="filled" fillcolor=gray];
|
31 [label="Stub" style="filled" fillcolor=gray];
|
||||||
30 [label="Lhs of ?: is not null" style="filled" fillcolor=gray];
|
32 [label="Lhs of ?: is not null" style="filled" fillcolor=gray];
|
||||||
31 [label="Exit ?:" style="filled" fillcolor=gray];
|
33 [label="Exit ?:" style="filled" fillcolor=gray];
|
||||||
32 [label="Variable declaration: lval s1: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
34 [label="Variable declaration: lval s1: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
||||||
33 [label="Exit block" style="filled" fillcolor=gray];
|
35 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
34 [label="Exit function stringReturnInLeftLen" style="filled" fillcolor=red];
|
36 [label="Exit function stringReturnInLeftLen" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 15};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 17};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {24};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {26};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {34};
|
20 -> {21};
|
||||||
20 -> {21} [style=dotted];
|
21 -> {22};
|
||||||
21 -> {22} [style=dotted];
|
22 -> {36};
|
||||||
22 -> {23} [style=dotted];
|
22 -> {23} [style=dotted];
|
||||||
23 -> {24} [style=dotted];
|
23 -> {24} [style=dotted];
|
||||||
24 -> {25};
|
24 -> {25} [style=dotted];
|
||||||
25 -> {26};
|
25 -> {26} [style=dotted];
|
||||||
25 -> {30} [style=dotted];
|
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {34};
|
27 -> {32} [style=dotted];
|
||||||
28 -> {29} [style=dotted];
|
28 -> {29};
|
||||||
29 -> {31} [style=dotted];
|
29 -> {30};
|
||||||
|
30 -> {36};
|
||||||
30 -> {31} [style=dotted];
|
30 -> {31} [style=dotted];
|
||||||
31 -> {32} [style=dotted];
|
31 -> {33} [style=dotted];
|
||||||
32 -> {33} [style=dotted];
|
32 -> {33} [style=dotted];
|
||||||
33 -> {34} [style=dotted];
|
33 -> {34} [style=dotted];
|
||||||
|
34 -> {35} [style=dotted];
|
||||||
|
35 -> {36} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+184
-177
@@ -5,113 +5,118 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class SomeEnum" style="filled" fillcolor=red];
|
0 [label="Enter file exhaustiveWhenAndDNNType.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file exhaustiveWhenAndDNNType.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Enum<SomeEnum>|>()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
4 [label="Exit class SomeEnum" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
|
||||||
0 -> {1} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter class B" style="filled" fillcolor=red];
|
2 [label="Enter class SomeEnum" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter function <init>" style="filled" fillcolor=red];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
7 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
4 [label="Delegated constructor call: super<R|kotlin/Enum<SomeEnum>|>()" style="filled" fillcolor=yellow];
|
||||||
8 [label="Exit function <init>" style="filled" fillcolor=red];
|
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
9 [label="Exit class B" style="filled" fillcolor=red];
|
6 [label="Exit class SomeEnum" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {6} [style=dotted];
|
||||||
|
2 -> {3} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
5 -> {6} [color=green];
|
5 -> {6} [color=green];
|
||||||
5 -> {9} [style=dotted];
|
|
||||||
5 -> {6} [style=dashed];
|
|
||||||
6 -> {7};
|
|
||||||
7 -> {8};
|
|
||||||
8 -> {9} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
10 [label="Enter function takeB" style="filled" fillcolor=red];
|
7 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
11 [label="Enter block"];
|
8 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
12 [label="Exit block"];
|
9 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
10 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
13 [label="Exit function takeB" style="filled" fillcolor=red];
|
11 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
10 -> {11};
|
7 -> {8} [color=green];
|
||||||
11 -> {12};
|
7 -> {11} [style=dotted];
|
||||||
12 -> {13};
|
7 -> {8} [style=dashed];
|
||||||
|
8 -> {9};
|
||||||
|
9 -> {10};
|
||||||
|
10 -> {11} [color=green];
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
12 [label="Enter function takeB" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter block"];
|
13 [label="Enter block"];
|
||||||
16 [label="Access qualifier /SomeEnum"];
|
14 [label="Exit block"];
|
||||||
17 [label="Access variable R|/SomeEnum.A1|"];
|
}
|
||||||
18 [label="Variable declaration: lval flag: R|SomeEnum|"];
|
15 [label="Exit function takeB" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
}
|
||||||
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
|
14 -> {15};
|
||||||
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter block"];
|
||||||
|
18 [label="Access qualifier /SomeEnum"];
|
||||||
|
19 [label="Access variable R|/SomeEnum.A1|"];
|
||||||
|
20 [label="Variable declaration: lval flag: R|SomeEnum|"];
|
||||||
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
19 [label="Enter when"];
|
21 [label="Enter when"];
|
||||||
20 [label="Access variable R|<local>/flag|"];
|
22 [label="Access variable R|<local>/flag|"];
|
||||||
21 [label="Check not null: R|<local>/flag|!!" style="filled" fillcolor=yellow];
|
23 [label="Check not null: R|<local>/flag|!!" style="filled" fillcolor=yellow];
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
22 [label="Enter when branch condition "];
|
|
||||||
23 [label="Exit $subj"];
|
|
||||||
24 [label="Access qualifier /SomeEnum"];
|
|
||||||
25 [label="Access variable R|/SomeEnum.A1|"];
|
|
||||||
26 [label="Equality operator =="];
|
|
||||||
27 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
28 [label="Enter when branch condition "];
|
24 [label="Enter when branch condition "];
|
||||||
29 [label="Exit $subj"];
|
25 [label="Exit $subj"];
|
||||||
30 [label="Access qualifier /SomeEnum"];
|
26 [label="Access qualifier /SomeEnum"];
|
||||||
31 [label="Access variable R|/SomeEnum.A2|"];
|
27 [label="Access variable R|/SomeEnum.A1|"];
|
||||||
32 [label="Equality operator =="];
|
28 [label="Equality operator =="];
|
||||||
33 [label="Exit when branch condition"];
|
29 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
34 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
35 [label="Enter block"];
|
30 [label="Enter when branch condition "];
|
||||||
36 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
31 [label="Exit $subj"];
|
||||||
37 [label="Exit block"];
|
32 [label="Access qualifier /SomeEnum"];
|
||||||
|
33 [label="Access variable R|/SomeEnum.A2|"];
|
||||||
|
34 [label="Equality operator =="];
|
||||||
|
35 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
38 [label="Exit when branch result"];
|
36 [label="Enter when branch result"];
|
||||||
39 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
40 [label="Enter block"];
|
37 [label="Enter block"];
|
||||||
41 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
38 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||||
42 [label="Exit block"];
|
39 [label="Exit block"];
|
||||||
}
|
}
|
||||||
43 [label="Exit when branch result"];
|
40 [label="Exit when branch result"];
|
||||||
44 [label="Exit when"];
|
41 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
42 [label="Enter block"];
|
||||||
|
43 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Exit block"];
|
||||||
|
}
|
||||||
|
45 [label="Exit when branch result"];
|
||||||
|
46 [label="Exit when"];
|
||||||
}
|
}
|
||||||
45 [label="Variable declaration: lval b: R|B|"];
|
47 [label="Variable declaration: lval b: R|B|"];
|
||||||
46 [label="Access variable R|<local>/b|"];
|
48 [label="Access variable R|<local>/b|"];
|
||||||
47 [label="Function call: R|/takeB|(...)" style="filled" fillcolor=yellow];
|
49 [label="Function call: R|/takeB|(...)" style="filled" fillcolor=yellow];
|
||||||
48 [label="Exit block"];
|
50 [label="Exit block"];
|
||||||
}
|
}
|
||||||
49 [label="Exit function test_1" style="filled" fillcolor=red];
|
51 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
14 -> {15};
|
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
@@ -123,9 +128,9 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28 39};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30 41};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
@@ -134,9 +139,9 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {44};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {46};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
@@ -145,66 +150,66 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
|
49 -> {50};
|
||||||
|
50 -> {51};
|
||||||
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_14 {
|
||||||
color=red
|
color=red
|
||||||
50 [label="Enter function test_2" style="filled" fillcolor=red];
|
52 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_14 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
51 [label="Enter block"];
|
53 [label="Enter block"];
|
||||||
52 [label="Access qualifier /SomeEnum"];
|
54 [label="Access qualifier /SomeEnum"];
|
||||||
53 [label="Access variable R|/SomeEnum.A1|"];
|
55 [label="Access variable R|/SomeEnum.A1|"];
|
||||||
54 [label="Variable declaration: lval flag: R|SomeEnum|"];
|
56 [label="Variable declaration: lval flag: R|SomeEnum|"];
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
55 [label="Enter when"];
|
57 [label="Enter when"];
|
||||||
56 [label="Access variable R|<local>/flag|"];
|
58 [label="Access variable R|<local>/flag|"];
|
||||||
57 [label="Check not null: R|<local>/flag|!!" style="filled" fillcolor=yellow];
|
59 [label="Check not null: R|<local>/flag|!!" style="filled" fillcolor=yellow];
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
58 [label="Enter when branch condition "];
|
|
||||||
59 [label="Exit $subj"];
|
|
||||||
60 [label="Access qualifier /SomeEnum"];
|
|
||||||
61 [label="Access variable R|/SomeEnum.A1|"];
|
|
||||||
62 [label="Equality operator =="];
|
|
||||||
63 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
64 [label="Enter when branch condition "];
|
60 [label="Enter when branch condition "];
|
||||||
65 [label="Exit $subj"];
|
61 [label="Exit $subj"];
|
||||||
66 [label="Access qualifier /SomeEnum"];
|
62 [label="Access qualifier /SomeEnum"];
|
||||||
67 [label="Access variable R|/SomeEnum.A2|"];
|
63 [label="Access variable R|/SomeEnum.A1|"];
|
||||||
68 [label="Equality operator =="];
|
64 [label="Equality operator =="];
|
||||||
69 [label="Exit when branch condition"];
|
65 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
70 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_18 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
71 [label="Enter block"];
|
66 [label="Enter when branch condition "];
|
||||||
72 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
67 [label="Exit $subj"];
|
||||||
73 [label="Exit block"];
|
68 [label="Access qualifier /SomeEnum"];
|
||||||
|
69 [label="Access variable R|/SomeEnum.A2|"];
|
||||||
|
70 [label="Equality operator =="];
|
||||||
|
71 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
74 [label="Exit when branch result"];
|
72 [label="Enter when branch result"];
|
||||||
75 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_19 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
76 [label="Enter block"];
|
73 [label="Enter block"];
|
||||||
77 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
74 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||||
78 [label="Exit block"];
|
75 [label="Exit block"];
|
||||||
}
|
}
|
||||||
79 [label="Exit when branch result"];
|
76 [label="Exit when branch result"];
|
||||||
80 [label="Exit when"];
|
77 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
78 [label="Enter block"];
|
||||||
|
79 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||||
|
80 [label="Exit block"];
|
||||||
|
}
|
||||||
|
81 [label="Exit when branch result"];
|
||||||
|
82 [label="Exit when"];
|
||||||
}
|
}
|
||||||
81 [label="Variable declaration: lval b: R|B|"];
|
83 [label="Variable declaration: lval b: R|B|"];
|
||||||
82 [label="Access variable R|<local>/b|"];
|
84 [label="Access variable R|<local>/b|"];
|
||||||
83 [label="Function call: R|/takeB|(...)" style="filled" fillcolor=yellow];
|
85 [label="Function call: R|/takeB|(...)" style="filled" fillcolor=yellow];
|
||||||
84 [label="Exit block"];
|
86 [label="Exit block"];
|
||||||
}
|
}
|
||||||
85 [label="Exit function test_2" style="filled" fillcolor=red];
|
87 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
50 -> {51};
|
|
||||||
51 -> {52};
|
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
@@ -216,9 +221,9 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64 75};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66 77};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
@@ -227,9 +232,9 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {80};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {82};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
@@ -238,65 +243,65 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
|
85 -> {86};
|
||||||
|
86 -> {87};
|
||||||
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_21 {
|
||||||
color=red
|
color=red
|
||||||
86 [label="Enter function test_3" style="filled" fillcolor=red];
|
88 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
87 [label="Enter block"];
|
89 [label="Enter block"];
|
||||||
88 [label="Access qualifier /SomeEnum"];
|
90 [label="Access qualifier /SomeEnum"];
|
||||||
89 [label="Access variable R|/SomeEnum.A1|"];
|
91 [label="Access variable R|/SomeEnum.A1|"];
|
||||||
90 [label="Variable declaration: lval flag: R|SomeEnum|"];
|
92 [label="Variable declaration: lval flag: R|SomeEnum|"];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
91 [label="Enter when"];
|
93 [label="Enter when"];
|
||||||
92 [label="Access variable R|<local>/flag|"];
|
94 [label="Access variable R|<local>/flag|"];
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
93 [label="Enter when branch condition "];
|
|
||||||
94 [label="Exit $subj"];
|
|
||||||
95 [label="Access qualifier /SomeEnum"];
|
|
||||||
96 [label="Access variable R|/SomeEnum.A1|"];
|
|
||||||
97 [label="Equality operator =="];
|
|
||||||
98 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_24 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
99 [label="Enter when branch condition "];
|
95 [label="Enter when branch condition "];
|
||||||
100 [label="Exit $subj"];
|
96 [label="Exit $subj"];
|
||||||
101 [label="Access qualifier /SomeEnum"];
|
97 [label="Access qualifier /SomeEnum"];
|
||||||
102 [label="Access variable R|/SomeEnum.A2|"];
|
98 [label="Access variable R|/SomeEnum.A1|"];
|
||||||
103 [label="Equality operator =="];
|
99 [label="Equality operator =="];
|
||||||
104 [label="Exit when branch condition"];
|
100 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
105 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_25 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
106 [label="Enter block"];
|
101 [label="Enter when branch condition "];
|
||||||
107 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
102 [label="Exit $subj"];
|
||||||
108 [label="Exit block"];
|
103 [label="Access qualifier /SomeEnum"];
|
||||||
|
104 [label="Access variable R|/SomeEnum.A2|"];
|
||||||
|
105 [label="Equality operator =="];
|
||||||
|
106 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
109 [label="Exit when branch result"];
|
107 [label="Enter when branch result"];
|
||||||
110 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_26 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
111 [label="Enter block"];
|
108 [label="Enter block"];
|
||||||
112 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
109 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||||
113 [label="Exit block"];
|
110 [label="Exit block"];
|
||||||
}
|
}
|
||||||
114 [label="Exit when branch result"];
|
111 [label="Exit when branch result"];
|
||||||
115 [label="Exit when"];
|
112 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
113 [label="Enter block"];
|
||||||
|
114 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||||
|
115 [label="Exit block"];
|
||||||
|
}
|
||||||
|
116 [label="Exit when branch result"];
|
||||||
|
117 [label="Exit when"];
|
||||||
}
|
}
|
||||||
116 [label="Variable declaration: lval b: R|B|"];
|
118 [label="Variable declaration: lval b: R|B|"];
|
||||||
117 [label="Access variable R|<local>/b|"];
|
119 [label="Access variable R|<local>/b|"];
|
||||||
118 [label="Function call: R|/takeB|(...)" style="filled" fillcolor=yellow];
|
120 [label="Function call: R|/takeB|(...)" style="filled" fillcolor=yellow];
|
||||||
119 [label="Exit block"];
|
121 [label="Exit block"];
|
||||||
}
|
}
|
||||||
120 [label="Exit function test_3" style="filled" fillcolor=red];
|
122 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
86 -> {87};
|
|
||||||
87 -> {88};
|
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
@@ -307,9 +312,9 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99 110};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {101};
|
100 -> {101 112};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
@@ -318,9 +323,9 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
106 -> {107};
|
106 -> {107};
|
||||||
107 -> {108};
|
107 -> {108};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {115};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {117};
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
@@ -329,5 +334,7 @@ digraph exhaustiveWhenAndDNNType_kt {
|
|||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120};
|
||||||
|
120 -> {121};
|
||||||
|
121 -> {122};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+62
-55
@@ -5,88 +5,95 @@ digraph secondaryConstructorCfg_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class B" style="filled" fillcolor=red];
|
0 [label="Enter file secondaryConstructorCfg.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file secondaryConstructorCfg.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
2 [label="Access variable R|<local>/p0|"];
|
4 [label="Access variable R|<local>/p0|"];
|
||||||
3 [label="Delegated constructor call: this<R|B|>(...)" style="filled" fillcolor=yellow];
|
5 [label="Delegated constructor call: this<R|B|>(...)" style="filled" fillcolor=yellow];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
4 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
5 [label="Access variable R|<local>/p0|"];
|
|
||||||
6 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
7 [label="Enter property" style="filled" fillcolor=red];
|
6 [label="Enter property" style="filled" fillcolor=red];
|
||||||
8 [label="Access variable R|<local>/p0|"];
|
7 [label="Access variable R|<local>/p0|"];
|
||||||
9 [label="Access variable R|kotlin/String.length|"];
|
8 [label="Exit property" style="filled" fillcolor=red];
|
||||||
10 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
11 [label="Enter init block" style="filled" fillcolor=red];
|
9 [label="Enter property" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
10 [label="Access variable R|<local>/p0|"];
|
||||||
color=blue
|
11 [label="Access variable R|kotlin/String.length|"];
|
||||||
12 [label="Enter block"];
|
12 [label="Exit property" style="filled" fillcolor=red];
|
||||||
13 [label="Access variable R|<local>/p0|"];
|
|
||||||
14 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
15 [label="Assignment: R|/B.p1|"];
|
|
||||||
16 [label="Const: String()"];
|
|
||||||
17 [label="Assignment: R|/B.p3|"];
|
|
||||||
18 [label="Exit block"];
|
|
||||||
}
|
|
||||||
19 [label="Exit init block" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_6 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
20 [label="Enter function <init>" style="filled" fillcolor=red];
|
13 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
21 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
subgraph cluster_6 {
|
||||||
22 [label="Exit function <init>" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
14 [label="Enter block"];
|
||||||
|
15 [label="Access variable R|<local>/p0|"];
|
||||||
|
16 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
17 [label="Assignment: R|/B.p1|"];
|
||||||
|
18 [label="Const: String()"];
|
||||||
|
19 [label="Assignment: R|/B.p3|"];
|
||||||
|
20 [label="Exit block"];
|
||||||
|
}
|
||||||
|
21 [label="Exit init block" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
22 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
24 [label="Access variable R|<local>/p1|"];
|
23 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
25 [label="Assignment: R|/B.p3|"];
|
24 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
26 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
27 [label="Exit function <init>" style="filled" fillcolor=red];
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Access variable R|<local>/p1|"];
|
||||||
|
27 [label="Assignment: R|/B.p3|"];
|
||||||
|
28 [label="Exit block"];
|
||||||
|
}
|
||||||
|
29 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
28 [label="Exit class B" style="filled" fillcolor=red];
|
30 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1 4} [color=green];
|
2 -> {3 6} [color=green];
|
||||||
0 -> {28} [style=dotted];
|
2 -> {30} [style=dotted];
|
||||||
0 -> {1 4 7 11 20} [style=dashed];
|
2 -> {3 6 9 13 22} [style=dashed];
|
||||||
1 -> {2};
|
3 -> {4};
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green label="return@/B.B"];
|
|
||||||
3 -> {23} [color=red];
|
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6} [color=green label="return@/B.B"];
|
||||||
6 -> {7} [color=green];
|
5 -> {25} [color=red];
|
||||||
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9} [color=green];
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11} [color=green];
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13} [color=green];
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20} [color=green];
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22} [color=green];
|
||||||
22 -> {23} [color=green label="return@/B.B"];
|
22 -> {23};
|
||||||
22 -> {28} [color=green];
|
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25} [color=green label="return@/B.B"];
|
||||||
|
24 -> {30} [color=green];
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28} [color=green];
|
27 -> {28};
|
||||||
|
28 -> {29};
|
||||||
|
29 -> {30} [color=green];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+299
-292
@@ -5,36 +5,41 @@ digraph bangbang_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file bangbang.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file bangbang.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test_0" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
5 [label="Enter block"];
|
|
||||||
6 [label="Access variable R|<local>/a|"];
|
|
||||||
7 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
|
||||||
8 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
9 [label="Access variable R|<local>/a|"];
|
|
||||||
10 [label="Smart cast: R|<local>/a|"];
|
|
||||||
11 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
12 [label="Exit block"];
|
|
||||||
}
|
|
||||||
13 [label="Exit function test_0" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function test_0" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
|
8 [label="Access variable R|<local>/a|"];
|
||||||
|
9 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
||||||
|
10 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
11 [label="Access variable R|<local>/a|"];
|
||||||
|
12 [label="Smart cast: R|<local>/a|"];
|
||||||
|
13 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit function test_0" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
@@ -42,55 +47,55 @@ digraph bangbang_kt {
|
|||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
|
14 -> {15};
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
16 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter block"];
|
17 [label="Enter block"];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter when"];
|
18 [label="Enter when"];
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter when branch condition "];
|
|
||||||
18 [label="Access variable R|<local>/a|"];
|
|
||||||
19 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
|
||||||
20 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
21 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
22 [label="Synthetic else branch"];
|
|
||||||
23 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
24 [label="Enter block"];
|
19 [label="Enter when branch condition "];
|
||||||
25 [label="Access variable R|<local>/a|"];
|
20 [label="Access variable R|<local>/a|"];
|
||||||
26 [label="Smart cast: R|<local>/a|"];
|
21 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
||||||
27 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
22 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
28 [label="Exit block"];
|
23 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
29 [label="Exit when branch result"];
|
24 [label="Synthetic else branch"];
|
||||||
30 [label="Exit when"];
|
25 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter block"];
|
||||||
|
27 [label="Access variable R|<local>/a|"];
|
||||||
|
28 [label="Smart cast: R|<local>/a|"];
|
||||||
|
29 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit when branch result"];
|
||||||
|
32 [label="Exit when"];
|
||||||
}
|
}
|
||||||
31 [label="Access variable R|<local>/a|"];
|
33 [label="Access variable R|<local>/a|"];
|
||||||
32 [label="Smart cast: R|<local>/a|"];
|
34 [label="Smart cast: R|<local>/a|"];
|
||||||
33 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
35 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
34 [label="Exit block"];
|
36 [label="Exit block"];
|
||||||
}
|
}
|
||||||
35 [label="Exit function test_1" style="filled" fillcolor=red];
|
37 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
14 -> {15};
|
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22 23};
|
21 -> {22};
|
||||||
22 -> {30};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24 25};
|
||||||
24 -> {25};
|
24 -> {32};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
@@ -101,68 +106,68 @@ digraph bangbang_kt {
|
|||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
|
35 -> {36};
|
||||||
subgraph cluster_9 {
|
|
||||||
color=red
|
|
||||||
36 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
37 [label="Enter block"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
38 [label="Enter when"];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
39 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
40 [label="Enter &&"];
|
|
||||||
41 [label="Access variable R|<local>/a|"];
|
|
||||||
42 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
|
||||||
43 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Exit left part of &&"];
|
|
||||||
45 [label="Enter right part of &&"];
|
|
||||||
46 [label="Access variable R|<local>/b|"];
|
|
||||||
47 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
48 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
49 [label="Synthetic else branch"];
|
|
||||||
50 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
51 [label="Enter block"];
|
|
||||||
52 [label="Access variable R|<local>/a|"];
|
|
||||||
53 [label="Smart cast: R|<local>/a|"];
|
|
||||||
54 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
55 [label="Exit block"];
|
|
||||||
}
|
|
||||||
56 [label="Exit when branch result"];
|
|
||||||
57 [label="Exit when"];
|
|
||||||
}
|
|
||||||
58 [label="Access variable R|<local>/a|"];
|
|
||||||
59 [label="Smart cast: R|<local>/a|"];
|
|
||||||
60 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
61 [label="Exit block"];
|
|
||||||
}
|
|
||||||
62 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=red
|
||||||
|
38 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
39 [label="Enter block"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
40 [label="Enter when"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
42 [label="Enter &&"];
|
||||||
|
43 [label="Access variable R|<local>/a|"];
|
||||||
|
44 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
||||||
|
45 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Exit left part of &&"];
|
||||||
|
47 [label="Enter right part of &&"];
|
||||||
|
48 [label="Access variable R|<local>/b|"];
|
||||||
|
49 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
50 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
51 [label="Synthetic else branch"];
|
||||||
|
52 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
53 [label="Enter block"];
|
||||||
|
54 [label="Access variable R|<local>/a|"];
|
||||||
|
55 [label="Smart cast: R|<local>/a|"];
|
||||||
|
56 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
57 [label="Exit block"];
|
||||||
|
}
|
||||||
|
58 [label="Exit when branch result"];
|
||||||
|
59 [label="Exit when"];
|
||||||
|
}
|
||||||
|
60 [label="Access variable R|<local>/a|"];
|
||||||
|
61 [label="Smart cast: R|<local>/a|"];
|
||||||
|
62 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
63 [label="Exit block"];
|
||||||
|
}
|
||||||
|
64 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45 47};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47 49};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49 50};
|
48 -> {49};
|
||||||
49 -> {57};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51 52};
|
||||||
51 -> {52};
|
51 -> {59};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
@@ -173,67 +178,67 @@ digraph bangbang_kt {
|
|||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
|
62 -> {63};
|
||||||
subgraph cluster_15 {
|
|
||||||
color=red
|
|
||||||
63 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
64 [label="Enter block"];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
65 [label="Enter when"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
66 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
67 [label="Enter &&"];
|
|
||||||
68 [label="Access variable R|<local>/b|"];
|
|
||||||
69 [label="Exit left part of &&"];
|
|
||||||
70 [label="Enter right part of &&"];
|
|
||||||
71 [label="Access variable R|<local>/a|"];
|
|
||||||
72 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
|
||||||
73 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
74 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
75 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
76 [label="Synthetic else branch"];
|
|
||||||
77 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
78 [label="Enter block"];
|
|
||||||
79 [label="Access variable R|<local>/a|"];
|
|
||||||
80 [label="Smart cast: R|<local>/a|"];
|
|
||||||
81 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
82 [label="Exit block"];
|
|
||||||
}
|
|
||||||
83 [label="Exit when branch result"];
|
|
||||||
84 [label="Exit when"];
|
|
||||||
}
|
|
||||||
85 [label="Access variable R|<local>/a|"];
|
|
||||||
86 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
87 [label="Exit block"];
|
|
||||||
}
|
|
||||||
88 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=red
|
||||||
|
65 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
66 [label="Enter block"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
67 [label="Enter when"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
68 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
69 [label="Enter &&"];
|
||||||
|
70 [label="Access variable R|<local>/b|"];
|
||||||
|
71 [label="Exit left part of &&"];
|
||||||
|
72 [label="Enter right part of &&"];
|
||||||
|
73 [label="Access variable R|<local>/a|"];
|
||||||
|
74 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
||||||
|
75 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
76 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
77 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
78 [label="Synthetic else branch"];
|
||||||
|
79 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
80 [label="Enter block"];
|
||||||
|
81 [label="Access variable R|<local>/a|"];
|
||||||
|
82 [label="Smart cast: R|<local>/a|"];
|
||||||
|
83 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
84 [label="Exit block"];
|
||||||
|
}
|
||||||
|
85 [label="Exit when branch result"];
|
||||||
|
86 [label="Exit when"];
|
||||||
|
}
|
||||||
|
87 [label="Access variable R|<local>/a|"];
|
||||||
|
88 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
89 [label="Exit block"];
|
||||||
|
}
|
||||||
|
90 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70 74};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72 76};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76 77};
|
75 -> {76};
|
||||||
76 -> {84};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78 79};
|
||||||
78 -> {79};
|
78 -> {86};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
@@ -243,68 +248,68 @@ digraph bangbang_kt {
|
|||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
|
88 -> {89};
|
||||||
subgraph cluster_21 {
|
|
||||||
color=red
|
|
||||||
89 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
90 [label="Enter block"];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
91 [label="Enter when"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
92 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
93 [label="Enter ||"];
|
|
||||||
94 [label="Access variable R|<local>/a|"];
|
|
||||||
95 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
|
||||||
96 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
97 [label="Exit left part of ||"];
|
|
||||||
98 [label="Enter right part of ||"];
|
|
||||||
99 [label="Access variable R|<local>/b|"];
|
|
||||||
100 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
101 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
102 [label="Synthetic else branch"];
|
|
||||||
103 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
104 [label="Enter block"];
|
|
||||||
105 [label="Access variable R|<local>/a|"];
|
|
||||||
106 [label="Smart cast: R|<local>/a|"];
|
|
||||||
107 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
108 [label="Exit block"];
|
|
||||||
}
|
|
||||||
109 [label="Exit when branch result"];
|
|
||||||
110 [label="Exit when"];
|
|
||||||
}
|
|
||||||
111 [label="Access variable R|<local>/a|"];
|
|
||||||
112 [label="Smart cast: R|<local>/a|"];
|
|
||||||
113 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
114 [label="Exit block"];
|
|
||||||
}
|
|
||||||
115 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91};
|
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=red
|
||||||
|
91 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
92 [label="Enter block"];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
93 [label="Enter when"];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
94 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
95 [label="Enter ||"];
|
||||||
|
96 [label="Access variable R|<local>/a|"];
|
||||||
|
97 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
||||||
|
98 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
99 [label="Exit left part of ||"];
|
||||||
|
100 [label="Enter right part of ||"];
|
||||||
|
101 [label="Access variable R|<local>/b|"];
|
||||||
|
102 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
103 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
104 [label="Synthetic else branch"];
|
||||||
|
105 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
106 [label="Enter block"];
|
||||||
|
107 [label="Access variable R|<local>/a|"];
|
||||||
|
108 [label="Smart cast: R|<local>/a|"];
|
||||||
|
109 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
110 [label="Exit block"];
|
||||||
|
}
|
||||||
|
111 [label="Exit when branch result"];
|
||||||
|
112 [label="Exit when"];
|
||||||
|
}
|
||||||
|
113 [label="Access variable R|<local>/a|"];
|
||||||
|
114 [label="Smart cast: R|<local>/a|"];
|
||||||
|
115 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
116 [label="Exit block"];
|
||||||
|
}
|
||||||
|
117 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98 100};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100 102};
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102 103};
|
101 -> {102};
|
||||||
102 -> {110};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104 105};
|
||||||
104 -> {105};
|
104 -> {112};
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
107 -> {108};
|
107 -> {108};
|
||||||
@@ -315,66 +320,66 @@ digraph bangbang_kt {
|
|||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
|
115 -> {116};
|
||||||
subgraph cluster_27 {
|
|
||||||
color=red
|
|
||||||
116 [label="Enter function test_5" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
117 [label="Enter block"];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
118 [label="Enter when"];
|
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
119 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_31 {
|
|
||||||
color=blue
|
|
||||||
120 [label="Enter ||"];
|
|
||||||
121 [label="Access variable R|<local>/b|"];
|
|
||||||
122 [label="Exit left part of ||"];
|
|
||||||
123 [label="Enter right part of ||"];
|
|
||||||
124 [label="Access variable R|<local>/a|"];
|
|
||||||
125 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
|
||||||
126 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
127 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
128 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
129 [label="Synthetic else branch"];
|
|
||||||
130 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_32 {
|
|
||||||
color=blue
|
|
||||||
131 [label="Enter block"];
|
|
||||||
132 [label="Access variable R|<local>/a|"];
|
|
||||||
133 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
134 [label="Exit block"];
|
|
||||||
}
|
|
||||||
135 [label="Exit when branch result"];
|
|
||||||
136 [label="Exit when"];
|
|
||||||
}
|
|
||||||
137 [label="Access variable R|<local>/a|"];
|
|
||||||
138 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
139 [label="Exit block"];
|
|
||||||
}
|
|
||||||
140 [label="Exit function test_5" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118};
|
|
||||||
|
subgraph cluster_28 {
|
||||||
|
color=red
|
||||||
|
118 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
119 [label="Enter block"];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
120 [label="Enter when"];
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
121 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_32 {
|
||||||
|
color=blue
|
||||||
|
122 [label="Enter ||"];
|
||||||
|
123 [label="Access variable R|<local>/b|"];
|
||||||
|
124 [label="Exit left part of ||"];
|
||||||
|
125 [label="Enter right part of ||"];
|
||||||
|
126 [label="Access variable R|<local>/a|"];
|
||||||
|
127 [label="Check not null: R|<local>/a|!!" style="filled" fillcolor=yellow];
|
||||||
|
128 [label="Function call: R|<local>/a|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
129 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
130 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
131 [label="Synthetic else branch"];
|
||||||
|
132 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=blue
|
||||||
|
133 [label="Enter block"];
|
||||||
|
134 [label="Access variable R|<local>/a|"];
|
||||||
|
135 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
136 [label="Exit block"];
|
||||||
|
}
|
||||||
|
137 [label="Exit when branch result"];
|
||||||
|
138 [label="Exit when"];
|
||||||
|
}
|
||||||
|
139 [label="Access variable R|<local>/a|"];
|
||||||
|
140 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
141 [label="Exit block"];
|
||||||
|
}
|
||||||
|
142 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
122 -> {123 127};
|
122 -> {123};
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
124 -> {125 129};
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129 130};
|
128 -> {129};
|
||||||
129 -> {136};
|
129 -> {130};
|
||||||
130 -> {131};
|
130 -> {131 132};
|
||||||
131 -> {132};
|
131 -> {138};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
134 -> {135};
|
134 -> {135};
|
||||||
@@ -383,45 +388,47 @@ digraph bangbang_kt {
|
|||||||
137 -> {138};
|
137 -> {138};
|
||||||
138 -> {139};
|
138 -> {139};
|
||||||
139 -> {140};
|
139 -> {140};
|
||||||
|
140 -> {141};
|
||||||
subgraph cluster_33 {
|
|
||||||
color=red
|
|
||||||
141 [label="Enter function test_6" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_34 {
|
|
||||||
color=blue
|
|
||||||
142 [label="Enter block"];
|
|
||||||
143 [label="Access variable R|<local>/x|"];
|
|
||||||
144 [label="Check not null: R|<local>/x|!!" style="filled" fillcolor=yellow];
|
|
||||||
145 [label="Function call: R|<local>/x|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
146 [label="Exit block"];
|
|
||||||
}
|
|
||||||
147 [label="Exit function test_6" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
141 -> {142};
|
141 -> {142};
|
||||||
142 -> {143};
|
|
||||||
|
subgraph cluster_34 {
|
||||||
|
color=red
|
||||||
|
143 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=blue
|
||||||
|
144 [label="Enter block"];
|
||||||
|
145 [label="Access variable R|<local>/x|"];
|
||||||
|
146 [label="Check not null: R|<local>/x|!!" style="filled" fillcolor=yellow];
|
||||||
|
147 [label="Function call: R|<local>/x|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
148 [label="Exit block"];
|
||||||
|
}
|
||||||
|
149 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {146};
|
145 -> {146};
|
||||||
146 -> {147};
|
146 -> {147};
|
||||||
|
147 -> {148};
|
||||||
subgraph cluster_35 {
|
|
||||||
color=red
|
|
||||||
148 [label="Enter function test_7" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_36 {
|
|
||||||
color=blue
|
|
||||||
149 [label="Enter block"];
|
|
||||||
150 [label="Access variable R|<local>/x|"];
|
|
||||||
151 [label="Check not null: R|<local>/x|!!" style="filled" fillcolor=yellow];
|
|
||||||
152 [label="Function call: R|<local>/x|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
153 [label="Exit block"];
|
|
||||||
}
|
|
||||||
154 [label="Exit function test_7" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
148 -> {149};
|
148 -> {149};
|
||||||
149 -> {150};
|
|
||||||
|
subgraph cluster_36 {
|
||||||
|
color=red
|
||||||
|
150 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_37 {
|
||||||
|
color=blue
|
||||||
|
151 [label="Enter block"];
|
||||||
|
152 [label="Access variable R|<local>/x|"];
|
||||||
|
153 [label="Check not null: R|<local>/x|!!" style="filled" fillcolor=yellow];
|
||||||
|
154 [label="Function call: R|<local>/x|!!.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
155 [label="Exit block"];
|
||||||
|
}
|
||||||
|
156 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
150 -> {151};
|
150 -> {151};
|
||||||
151 -> {152};
|
151 -> {152};
|
||||||
152 -> {153};
|
152 -> {153};
|
||||||
153 -> {154};
|
153 -> {154};
|
||||||
|
154 -> {155};
|
||||||
|
155 -> {156};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+691
-684
File diff suppressed because it is too large
Load Diff
+336
-329
@@ -5,69 +5,74 @@ digraph equalsToBoolean_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file equalsToBoolean.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file equalsToBoolean.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test_1" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
5 [label="Enter block"];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
6 [label="Enter when"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
7 [label="Enter when branch condition "];
|
|
||||||
8 [label="Access variable R|<local>/b|"];
|
|
||||||
9 [label="Const: Boolean(true)"];
|
|
||||||
10 [label="Equality operator =="];
|
|
||||||
11 [label="Const: Boolean(true)"];
|
|
||||||
12 [label="Equality operator =="];
|
|
||||||
13 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
14 [label="Enter when branch condition else"];
|
|
||||||
15 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
16 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter block"];
|
|
||||||
18 [label="Access variable R|<local>/b|"];
|
|
||||||
19 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
|
||||||
21 [label="Exit when branch result"];
|
|
||||||
22 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter block"];
|
|
||||||
24 [label="Access variable R|<local>/b|"];
|
|
||||||
25 [label="Smart cast: R|<local>/b|"];
|
|
||||||
26 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
27 [label="Exit block"];
|
|
||||||
}
|
|
||||||
28 [label="Exit when branch result"];
|
|
||||||
29 [label="Exit when"];
|
|
||||||
}
|
|
||||||
30 [label="Exit block"];
|
|
||||||
}
|
|
||||||
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter when"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter when branch condition "];
|
||||||
|
10 [label="Access variable R|<local>/b|"];
|
||||||
|
11 [label="Const: Boolean(true)"];
|
||||||
|
12 [label="Equality operator =="];
|
||||||
|
13 [label="Const: Boolean(true)"];
|
||||||
|
14 [label="Equality operator =="];
|
||||||
|
15 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
16 [label="Enter when branch condition else"];
|
||||||
|
17 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
18 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter block"];
|
||||||
|
20 [label="Access variable R|<local>/b|"];
|
||||||
|
21 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
|
22 [label="Exit block"];
|
||||||
|
}
|
||||||
|
23 [label="Exit when branch result"];
|
||||||
|
24 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Access variable R|<local>/b|"];
|
||||||
|
27 [label="Smart cast: R|<local>/b|"];
|
||||||
|
28 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
29 [label="Exit block"];
|
||||||
|
}
|
||||||
|
30 [label="Exit when branch result"];
|
||||||
|
31 [label="Exit when"];
|
||||||
|
}
|
||||||
|
32 [label="Exit block"];
|
||||||
|
}
|
||||||
|
33 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
@@ -75,17 +80,17 @@ digraph equalsToBoolean_kt {
|
|||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14 22};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16 24};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {29};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {31};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
@@ -93,58 +98,58 @@ digraph equalsToBoolean_kt {
|
|||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
34 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
33 [label="Enter block"];
|
35 [label="Enter block"];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
34 [label="Enter when"];
|
36 [label="Enter when"];
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter when branch condition "];
|
|
||||||
36 [label="Access variable R|<local>/b|"];
|
|
||||||
37 [label="Const: Boolean(true)"];
|
|
||||||
38 [label="Equality operator =="];
|
|
||||||
39 [label="Const: Boolean(true)"];
|
|
||||||
40 [label="Equality operator !="];
|
|
||||||
41 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
42 [label="Enter when branch condition else"];
|
37 [label="Enter when branch condition "];
|
||||||
|
38 [label="Access variable R|<local>/b|"];
|
||||||
|
39 [label="Const: Boolean(true)"];
|
||||||
|
40 [label="Equality operator =="];
|
||||||
|
41 [label="Const: Boolean(true)"];
|
||||||
|
42 [label="Equality operator !="];
|
||||||
43 [label="Exit when branch condition"];
|
43 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
44 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
45 [label="Enter block"];
|
44 [label="Enter when branch condition else"];
|
||||||
46 [label="Access variable R|<local>/b|"];
|
45 [label="Exit when branch condition"];
|
||||||
47 [label="Smart cast: R|<local>/b|"];
|
|
||||||
48 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
49 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
50 [label="Exit when branch result"];
|
46 [label="Enter when branch result"];
|
||||||
51 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
52 [label="Enter block"];
|
47 [label="Enter block"];
|
||||||
53 [label="Access variable R|<local>/b|"];
|
48 [label="Access variable R|<local>/b|"];
|
||||||
54 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
49 [label="Smart cast: R|<local>/b|"];
|
||||||
55 [label="Exit block"];
|
50 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
51 [label="Exit block"];
|
||||||
}
|
}
|
||||||
56 [label="Exit when branch result"];
|
52 [label="Exit when branch result"];
|
||||||
57 [label="Exit when"];
|
53 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
54 [label="Enter block"];
|
||||||
|
55 [label="Access variable R|<local>/b|"];
|
||||||
|
56 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
|
57 [label="Exit block"];
|
||||||
|
}
|
||||||
|
58 [label="Exit when branch result"];
|
||||||
|
59 [label="Exit when"];
|
||||||
}
|
}
|
||||||
58 [label="Exit block"];
|
60 [label="Exit block"];
|
||||||
}
|
}
|
||||||
59 [label="Exit function test_2" style="filled" fillcolor=red];
|
61 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
32 -> {33};
|
|
||||||
33 -> {34};
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
@@ -152,76 +157,76 @@ digraph equalsToBoolean_kt {
|
|||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42 51};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44 53};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {57};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {59};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
|
59 -> {60};
|
||||||
|
60 -> {61};
|
||||||
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=red
|
color=red
|
||||||
60 [label="Enter function test_3" style="filled" fillcolor=red];
|
62 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
61 [label="Enter block"];
|
63 [label="Enter block"];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
62 [label="Enter when"];
|
64 [label="Enter when"];
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
63 [label="Enter when branch condition "];
|
|
||||||
64 [label="Access variable R|<local>/b|"];
|
|
||||||
65 [label="Const: Boolean(true)"];
|
|
||||||
66 [label="Equality operator =="];
|
|
||||||
67 [label="Const: Boolean(false)"];
|
|
||||||
68 [label="Equality operator =="];
|
|
||||||
69 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
70 [label="Enter when branch condition else"];
|
65 [label="Enter when branch condition "];
|
||||||
|
66 [label="Access variable R|<local>/b|"];
|
||||||
|
67 [label="Const: Boolean(true)"];
|
||||||
|
68 [label="Equality operator =="];
|
||||||
|
69 [label="Const: Boolean(false)"];
|
||||||
|
70 [label="Equality operator =="];
|
||||||
71 [label="Exit when branch condition"];
|
71 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
72 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
73 [label="Enter block"];
|
72 [label="Enter when branch condition else"];
|
||||||
74 [label="Access variable R|<local>/b|"];
|
73 [label="Exit when branch condition"];
|
||||||
75 [label="Smart cast: R|<local>/b|"];
|
|
||||||
76 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
77 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
78 [label="Exit when branch result"];
|
74 [label="Enter when branch result"];
|
||||||
79 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
80 [label="Enter block"];
|
75 [label="Enter block"];
|
||||||
81 [label="Access variable R|<local>/b|"];
|
76 [label="Access variable R|<local>/b|"];
|
||||||
82 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
77 [label="Smart cast: R|<local>/b|"];
|
||||||
83 [label="Exit block"];
|
78 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
79 [label="Exit block"];
|
||||||
}
|
}
|
||||||
84 [label="Exit when branch result"];
|
80 [label="Exit when branch result"];
|
||||||
85 [label="Exit when"];
|
81 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
82 [label="Enter block"];
|
||||||
|
83 [label="Access variable R|<local>/b|"];
|
||||||
|
84 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
|
85 [label="Exit block"];
|
||||||
|
}
|
||||||
|
86 [label="Exit when branch result"];
|
||||||
|
87 [label="Exit when"];
|
||||||
}
|
}
|
||||||
86 [label="Exit block"];
|
88 [label="Exit block"];
|
||||||
}
|
}
|
||||||
87 [label="Exit function test_3" style="filled" fillcolor=red];
|
89 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
60 -> {61};
|
|
||||||
61 -> {62};
|
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
@@ -229,76 +234,76 @@ digraph equalsToBoolean_kt {
|
|||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70 79};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72 81};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {85};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {87};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
|
87 -> {88};
|
||||||
|
88 -> {89};
|
||||||
|
|
||||||
subgraph cluster_23 {
|
subgraph cluster_24 {
|
||||||
color=red
|
color=red
|
||||||
88 [label="Enter function test_4" style="filled" fillcolor=red];
|
90 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
subgraph cluster_24 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
89 [label="Enter block"];
|
91 [label="Enter block"];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
90 [label="Enter when"];
|
92 [label="Enter when"];
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
91 [label="Enter when branch condition "];
|
|
||||||
92 [label="Access variable R|<local>/b|"];
|
|
||||||
93 [label="Const: Boolean(true)"];
|
|
||||||
94 [label="Equality operator =="];
|
|
||||||
95 [label="Const: Boolean(false)"];
|
|
||||||
96 [label="Equality operator !="];
|
|
||||||
97 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
98 [label="Enter when branch condition else"];
|
93 [label="Enter when branch condition "];
|
||||||
|
94 [label="Access variable R|<local>/b|"];
|
||||||
|
95 [label="Const: Boolean(true)"];
|
||||||
|
96 [label="Equality operator =="];
|
||||||
|
97 [label="Const: Boolean(false)"];
|
||||||
|
98 [label="Equality operator !="];
|
||||||
99 [label="Exit when branch condition"];
|
99 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
100 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_28 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
101 [label="Enter block"];
|
100 [label="Enter when branch condition else"];
|
||||||
102 [label="Access variable R|<local>/b|"];
|
101 [label="Exit when branch condition"];
|
||||||
103 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
|
||||||
104 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
105 [label="Exit when branch result"];
|
102 [label="Enter when branch result"];
|
||||||
106 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_29 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
107 [label="Enter block"];
|
103 [label="Enter block"];
|
||||||
108 [label="Access variable R|<local>/b|"];
|
104 [label="Access variable R|<local>/b|"];
|
||||||
109 [label="Smart cast: R|<local>/b|"];
|
105 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
110 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
106 [label="Exit block"];
|
||||||
111 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
112 [label="Exit when branch result"];
|
107 [label="Exit when branch result"];
|
||||||
113 [label="Exit when"];
|
108 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
109 [label="Enter block"];
|
||||||
|
110 [label="Access variable R|<local>/b|"];
|
||||||
|
111 [label="Smart cast: R|<local>/b|"];
|
||||||
|
112 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
113 [label="Exit block"];
|
||||||
|
}
|
||||||
|
114 [label="Exit when branch result"];
|
||||||
|
115 [label="Exit when"];
|
||||||
}
|
}
|
||||||
114 [label="Exit block"];
|
116 [label="Exit block"];
|
||||||
}
|
}
|
||||||
115 [label="Exit function test_4" style="filled" fillcolor=red];
|
117 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
88 -> {89};
|
|
||||||
89 -> {90};
|
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
@@ -306,17 +311,17 @@ digraph equalsToBoolean_kt {
|
|||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98 106};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100 108};
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {113};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
107 -> {108};
|
107 -> {115};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
@@ -324,58 +329,58 @@ digraph equalsToBoolean_kt {
|
|||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
|
115 -> {116};
|
||||||
|
116 -> {117};
|
||||||
|
|
||||||
subgraph cluster_30 {
|
subgraph cluster_31 {
|
||||||
color=red
|
color=red
|
||||||
116 [label="Enter function test_5" style="filled" fillcolor=red];
|
118 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
subgraph cluster_31 {
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
117 [label="Enter block"];
|
119 [label="Enter block"];
|
||||||
subgraph cluster_32 {
|
subgraph cluster_33 {
|
||||||
color=blue
|
color=blue
|
||||||
118 [label="Enter when"];
|
120 [label="Enter when"];
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
119 [label="Enter when branch condition "];
|
|
||||||
120 [label="Access variable R|<local>/b|"];
|
|
||||||
121 [label="Const: Boolean(true)"];
|
|
||||||
122 [label="Equality operator !="];
|
|
||||||
123 [label="Const: Boolean(true)"];
|
|
||||||
124 [label="Equality operator =="];
|
|
||||||
125 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_34 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
126 [label="Enter when branch condition else"];
|
121 [label="Enter when branch condition "];
|
||||||
|
122 [label="Access variable R|<local>/b|"];
|
||||||
|
123 [label="Const: Boolean(true)"];
|
||||||
|
124 [label="Equality operator !="];
|
||||||
|
125 [label="Const: Boolean(true)"];
|
||||||
|
126 [label="Equality operator =="];
|
||||||
127 [label="Exit when branch condition"];
|
127 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
128 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_35 {
|
subgraph cluster_35 {
|
||||||
color=blue
|
color=blue
|
||||||
129 [label="Enter block"];
|
128 [label="Enter when branch condition else"];
|
||||||
130 [label="Access variable R|<local>/b|"];
|
129 [label="Exit when branch condition"];
|
||||||
131 [label="Smart cast: R|<local>/b|"];
|
|
||||||
132 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
133 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
134 [label="Exit when branch result"];
|
130 [label="Enter when branch result"];
|
||||||
135 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_36 {
|
subgraph cluster_36 {
|
||||||
color=blue
|
color=blue
|
||||||
136 [label="Enter block"];
|
131 [label="Enter block"];
|
||||||
137 [label="Access variable R|<local>/b|"];
|
132 [label="Access variable R|<local>/b|"];
|
||||||
138 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
133 [label="Smart cast: R|<local>/b|"];
|
||||||
139 [label="Exit block"];
|
134 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
135 [label="Exit block"];
|
||||||
}
|
}
|
||||||
140 [label="Exit when branch result"];
|
136 [label="Exit when branch result"];
|
||||||
141 [label="Exit when"];
|
137 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_37 {
|
||||||
|
color=blue
|
||||||
|
138 [label="Enter block"];
|
||||||
|
139 [label="Access variable R|<local>/b|"];
|
||||||
|
140 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
|
141 [label="Exit block"];
|
||||||
|
}
|
||||||
|
142 [label="Exit when branch result"];
|
||||||
|
143 [label="Exit when"];
|
||||||
}
|
}
|
||||||
142 [label="Exit block"];
|
144 [label="Exit block"];
|
||||||
}
|
}
|
||||||
143 [label="Exit function test_5" style="filled" fillcolor=red];
|
145 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
116 -> {117};
|
|
||||||
117 -> {118};
|
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
@@ -383,76 +388,76 @@ digraph equalsToBoolean_kt {
|
|||||||
122 -> {123};
|
122 -> {123};
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126 135};
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128 137};
|
||||||
128 -> {129};
|
128 -> {129};
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
134 -> {141};
|
134 -> {135};
|
||||||
135 -> {136};
|
135 -> {136};
|
||||||
136 -> {137};
|
136 -> {143};
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
138 -> {139};
|
138 -> {139};
|
||||||
139 -> {140};
|
139 -> {140};
|
||||||
140 -> {141};
|
140 -> {141};
|
||||||
141 -> {142};
|
141 -> {142};
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
|
143 -> {144};
|
||||||
|
144 -> {145};
|
||||||
|
|
||||||
subgraph cluster_37 {
|
subgraph cluster_38 {
|
||||||
color=red
|
color=red
|
||||||
144 [label="Enter function test_6" style="filled" fillcolor=red];
|
146 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
subgraph cluster_38 {
|
subgraph cluster_39 {
|
||||||
color=blue
|
color=blue
|
||||||
145 [label="Enter block"];
|
147 [label="Enter block"];
|
||||||
subgraph cluster_39 {
|
subgraph cluster_40 {
|
||||||
color=blue
|
color=blue
|
||||||
146 [label="Enter when"];
|
148 [label="Enter when"];
|
||||||
subgraph cluster_40 {
|
|
||||||
color=blue
|
|
||||||
147 [label="Enter when branch condition "];
|
|
||||||
148 [label="Access variable R|<local>/b|"];
|
|
||||||
149 [label="Const: Boolean(true)"];
|
|
||||||
150 [label="Equality operator !="];
|
|
||||||
151 [label="Const: Boolean(true)"];
|
|
||||||
152 [label="Equality operator !="];
|
|
||||||
153 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_41 {
|
subgraph cluster_41 {
|
||||||
color=blue
|
color=blue
|
||||||
154 [label="Enter when branch condition else"];
|
149 [label="Enter when branch condition "];
|
||||||
|
150 [label="Access variable R|<local>/b|"];
|
||||||
|
151 [label="Const: Boolean(true)"];
|
||||||
|
152 [label="Equality operator !="];
|
||||||
|
153 [label="Const: Boolean(true)"];
|
||||||
|
154 [label="Equality operator !="];
|
||||||
155 [label="Exit when branch condition"];
|
155 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
156 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_42 {
|
subgraph cluster_42 {
|
||||||
color=blue
|
color=blue
|
||||||
157 [label="Enter block"];
|
156 [label="Enter when branch condition else"];
|
||||||
158 [label="Access variable R|<local>/b|"];
|
157 [label="Exit when branch condition"];
|
||||||
159 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
|
||||||
160 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
161 [label="Exit when branch result"];
|
158 [label="Enter when branch result"];
|
||||||
162 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_43 {
|
subgraph cluster_43 {
|
||||||
color=blue
|
color=blue
|
||||||
163 [label="Enter block"];
|
159 [label="Enter block"];
|
||||||
164 [label="Access variable R|<local>/b|"];
|
160 [label="Access variable R|<local>/b|"];
|
||||||
165 [label="Smart cast: R|<local>/b|"];
|
161 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
166 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
162 [label="Exit block"];
|
||||||
167 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
168 [label="Exit when branch result"];
|
163 [label="Exit when branch result"];
|
||||||
169 [label="Exit when"];
|
164 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_44 {
|
||||||
|
color=blue
|
||||||
|
165 [label="Enter block"];
|
||||||
|
166 [label="Access variable R|<local>/b|"];
|
||||||
|
167 [label="Smart cast: R|<local>/b|"];
|
||||||
|
168 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
169 [label="Exit block"];
|
||||||
|
}
|
||||||
|
170 [label="Exit when branch result"];
|
||||||
|
171 [label="Exit when"];
|
||||||
}
|
}
|
||||||
170 [label="Exit block"];
|
172 [label="Exit block"];
|
||||||
}
|
}
|
||||||
171 [label="Exit function test_6" style="filled" fillcolor=red];
|
173 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
144 -> {145};
|
|
||||||
145 -> {146};
|
|
||||||
146 -> {147};
|
146 -> {147};
|
||||||
147 -> {148};
|
147 -> {148};
|
||||||
148 -> {149};
|
148 -> {149};
|
||||||
@@ -460,17 +465,17 @@ digraph equalsToBoolean_kt {
|
|||||||
150 -> {151};
|
150 -> {151};
|
||||||
151 -> {152};
|
151 -> {152};
|
||||||
152 -> {153};
|
152 -> {153};
|
||||||
153 -> {154 162};
|
153 -> {154};
|
||||||
154 -> {155};
|
154 -> {155};
|
||||||
155 -> {156};
|
155 -> {156 164};
|
||||||
156 -> {157};
|
156 -> {157};
|
||||||
157 -> {158};
|
157 -> {158};
|
||||||
158 -> {159};
|
158 -> {159};
|
||||||
159 -> {160};
|
159 -> {160};
|
||||||
160 -> {161};
|
160 -> {161};
|
||||||
161 -> {169};
|
161 -> {162};
|
||||||
162 -> {163};
|
162 -> {163};
|
||||||
163 -> {164};
|
163 -> {171};
|
||||||
164 -> {165};
|
164 -> {165};
|
||||||
165 -> {166};
|
165 -> {166};
|
||||||
166 -> {167};
|
166 -> {167};
|
||||||
@@ -478,58 +483,58 @@ digraph equalsToBoolean_kt {
|
|||||||
168 -> {169};
|
168 -> {169};
|
||||||
169 -> {170};
|
169 -> {170};
|
||||||
170 -> {171};
|
170 -> {171};
|
||||||
|
171 -> {172};
|
||||||
|
172 -> {173};
|
||||||
|
|
||||||
subgraph cluster_44 {
|
subgraph cluster_45 {
|
||||||
color=red
|
color=red
|
||||||
172 [label="Enter function test_7" style="filled" fillcolor=red];
|
174 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||||
subgraph cluster_45 {
|
subgraph cluster_46 {
|
||||||
color=blue
|
color=blue
|
||||||
173 [label="Enter block"];
|
175 [label="Enter block"];
|
||||||
subgraph cluster_46 {
|
subgraph cluster_47 {
|
||||||
color=blue
|
color=blue
|
||||||
174 [label="Enter when"];
|
176 [label="Enter when"];
|
||||||
subgraph cluster_47 {
|
|
||||||
color=blue
|
|
||||||
175 [label="Enter when branch condition "];
|
|
||||||
176 [label="Access variable R|<local>/b|"];
|
|
||||||
177 [label="Const: Boolean(true)"];
|
|
||||||
178 [label="Equality operator !="];
|
|
||||||
179 [label="Const: Boolean(false)"];
|
|
||||||
180 [label="Equality operator =="];
|
|
||||||
181 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_48 {
|
subgraph cluster_48 {
|
||||||
color=blue
|
color=blue
|
||||||
182 [label="Enter when branch condition else"];
|
177 [label="Enter when branch condition "];
|
||||||
|
178 [label="Access variable R|<local>/b|"];
|
||||||
|
179 [label="Const: Boolean(true)"];
|
||||||
|
180 [label="Equality operator !="];
|
||||||
|
181 [label="Const: Boolean(false)"];
|
||||||
|
182 [label="Equality operator =="];
|
||||||
183 [label="Exit when branch condition"];
|
183 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
184 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_49 {
|
subgraph cluster_49 {
|
||||||
color=blue
|
color=blue
|
||||||
185 [label="Enter block"];
|
184 [label="Enter when branch condition else"];
|
||||||
186 [label="Access variable R|<local>/b|"];
|
185 [label="Exit when branch condition"];
|
||||||
187 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
|
||||||
188 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
189 [label="Exit when branch result"];
|
186 [label="Enter when branch result"];
|
||||||
190 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_50 {
|
subgraph cluster_50 {
|
||||||
color=blue
|
color=blue
|
||||||
191 [label="Enter block"];
|
187 [label="Enter block"];
|
||||||
192 [label="Access variable R|<local>/b|"];
|
188 [label="Access variable R|<local>/b|"];
|
||||||
193 [label="Smart cast: R|<local>/b|"];
|
189 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
194 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
190 [label="Exit block"];
|
||||||
195 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
196 [label="Exit when branch result"];
|
191 [label="Exit when branch result"];
|
||||||
197 [label="Exit when"];
|
192 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_51 {
|
||||||
|
color=blue
|
||||||
|
193 [label="Enter block"];
|
||||||
|
194 [label="Access variable R|<local>/b|"];
|
||||||
|
195 [label="Smart cast: R|<local>/b|"];
|
||||||
|
196 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
197 [label="Exit block"];
|
||||||
|
}
|
||||||
|
198 [label="Exit when branch result"];
|
||||||
|
199 [label="Exit when"];
|
||||||
}
|
}
|
||||||
198 [label="Exit block"];
|
200 [label="Exit block"];
|
||||||
}
|
}
|
||||||
199 [label="Exit function test_7" style="filled" fillcolor=red];
|
201 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
172 -> {173};
|
|
||||||
173 -> {174};
|
|
||||||
174 -> {175};
|
174 -> {175};
|
||||||
175 -> {176};
|
175 -> {176};
|
||||||
176 -> {177};
|
176 -> {177};
|
||||||
@@ -537,17 +542,17 @@ digraph equalsToBoolean_kt {
|
|||||||
178 -> {179};
|
178 -> {179};
|
||||||
179 -> {180};
|
179 -> {180};
|
||||||
180 -> {181};
|
180 -> {181};
|
||||||
181 -> {182 190};
|
181 -> {182};
|
||||||
182 -> {183};
|
182 -> {183};
|
||||||
183 -> {184};
|
183 -> {184 192};
|
||||||
184 -> {185};
|
184 -> {185};
|
||||||
185 -> {186};
|
185 -> {186};
|
||||||
186 -> {187};
|
186 -> {187};
|
||||||
187 -> {188};
|
187 -> {188};
|
||||||
188 -> {189};
|
188 -> {189};
|
||||||
189 -> {197};
|
189 -> {190};
|
||||||
190 -> {191};
|
190 -> {191};
|
||||||
191 -> {192};
|
191 -> {199};
|
||||||
192 -> {193};
|
192 -> {193};
|
||||||
193 -> {194};
|
193 -> {194};
|
||||||
194 -> {195};
|
194 -> {195};
|
||||||
@@ -555,58 +560,58 @@ digraph equalsToBoolean_kt {
|
|||||||
196 -> {197};
|
196 -> {197};
|
||||||
197 -> {198};
|
197 -> {198};
|
||||||
198 -> {199};
|
198 -> {199};
|
||||||
|
199 -> {200};
|
||||||
|
200 -> {201};
|
||||||
|
|
||||||
subgraph cluster_51 {
|
subgraph cluster_52 {
|
||||||
color=red
|
color=red
|
||||||
200 [label="Enter function test_8" style="filled" fillcolor=red];
|
202 [label="Enter function test_8" style="filled" fillcolor=red];
|
||||||
subgraph cluster_52 {
|
subgraph cluster_53 {
|
||||||
color=blue
|
color=blue
|
||||||
201 [label="Enter block"];
|
203 [label="Enter block"];
|
||||||
subgraph cluster_53 {
|
subgraph cluster_54 {
|
||||||
color=blue
|
color=blue
|
||||||
202 [label="Enter when"];
|
204 [label="Enter when"];
|
||||||
subgraph cluster_54 {
|
|
||||||
color=blue
|
|
||||||
203 [label="Enter when branch condition "];
|
|
||||||
204 [label="Access variable R|<local>/b|"];
|
|
||||||
205 [label="Const: Boolean(true)"];
|
|
||||||
206 [label="Equality operator !="];
|
|
||||||
207 [label="Const: Boolean(false)"];
|
|
||||||
208 [label="Equality operator !="];
|
|
||||||
209 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_55 {
|
subgraph cluster_55 {
|
||||||
color=blue
|
color=blue
|
||||||
210 [label="Enter when branch condition else"];
|
205 [label="Enter when branch condition "];
|
||||||
|
206 [label="Access variable R|<local>/b|"];
|
||||||
|
207 [label="Const: Boolean(true)"];
|
||||||
|
208 [label="Equality operator !="];
|
||||||
|
209 [label="Const: Boolean(false)"];
|
||||||
|
210 [label="Equality operator !="];
|
||||||
211 [label="Exit when branch condition"];
|
211 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
212 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_56 {
|
subgraph cluster_56 {
|
||||||
color=blue
|
color=blue
|
||||||
213 [label="Enter block"];
|
212 [label="Enter when branch condition else"];
|
||||||
214 [label="Access variable R|<local>/b|"];
|
213 [label="Exit when branch condition"];
|
||||||
215 [label="Smart cast: R|<local>/b|"];
|
|
||||||
216 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
217 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
218 [label="Exit when branch result"];
|
214 [label="Enter when branch result"];
|
||||||
219 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_57 {
|
subgraph cluster_57 {
|
||||||
color=blue
|
color=blue
|
||||||
220 [label="Enter block"];
|
215 [label="Enter block"];
|
||||||
221 [label="Access variable R|<local>/b|"];
|
216 [label="Access variable R|<local>/b|"];
|
||||||
222 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
217 [label="Smart cast: R|<local>/b|"];
|
||||||
223 [label="Exit block"];
|
218 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
219 [label="Exit block"];
|
||||||
}
|
}
|
||||||
224 [label="Exit when branch result"];
|
220 [label="Exit when branch result"];
|
||||||
225 [label="Exit when"];
|
221 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_58 {
|
||||||
|
color=blue
|
||||||
|
222 [label="Enter block"];
|
||||||
|
223 [label="Access variable R|<local>/b|"];
|
||||||
|
224 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#|()" style="filled" fillcolor=yellow];
|
||||||
|
225 [label="Exit block"];
|
||||||
|
}
|
||||||
|
226 [label="Exit when branch result"];
|
||||||
|
227 [label="Exit when"];
|
||||||
}
|
}
|
||||||
226 [label="Exit block"];
|
228 [label="Exit block"];
|
||||||
}
|
}
|
||||||
227 [label="Exit function test_8" style="filled" fillcolor=red];
|
229 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
200 -> {201};
|
|
||||||
201 -> {202};
|
|
||||||
202 -> {203};
|
202 -> {203};
|
||||||
203 -> {204};
|
203 -> {204};
|
||||||
204 -> {205};
|
204 -> {205};
|
||||||
@@ -614,23 +619,25 @@ digraph equalsToBoolean_kt {
|
|||||||
206 -> {207};
|
206 -> {207};
|
||||||
207 -> {208};
|
207 -> {208};
|
||||||
208 -> {209};
|
208 -> {209};
|
||||||
209 -> {210 219};
|
209 -> {210};
|
||||||
210 -> {211};
|
210 -> {211};
|
||||||
211 -> {212};
|
211 -> {212 221};
|
||||||
212 -> {213};
|
212 -> {213};
|
||||||
213 -> {214};
|
213 -> {214};
|
||||||
214 -> {215};
|
214 -> {215};
|
||||||
215 -> {216};
|
215 -> {216};
|
||||||
216 -> {217};
|
216 -> {217};
|
||||||
217 -> {218};
|
217 -> {218};
|
||||||
218 -> {225};
|
218 -> {219};
|
||||||
219 -> {220};
|
219 -> {220};
|
||||||
220 -> {221};
|
220 -> {227};
|
||||||
221 -> {222};
|
221 -> {222};
|
||||||
222 -> {223};
|
222 -> {223};
|
||||||
223 -> {224};
|
223 -> {224};
|
||||||
224 -> {225};
|
224 -> {225};
|
||||||
225 -> {226};
|
225 -> {226};
|
||||||
226 -> {227};
|
226 -> {227};
|
||||||
|
227 -> {228};
|
||||||
|
228 -> {229};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+376
-369
@@ -5,169 +5,174 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file jumpFromRhsOfOperator.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file jumpFromRhsOfOperator.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test_1" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
5 [label="Enter block"];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
6 [label="Enter ||"];
|
|
||||||
7 [label="Access variable R|<local>/a|"];
|
|
||||||
8 [label="Const: Null(null)"];
|
|
||||||
9 [label="Equality operator !="];
|
|
||||||
10 [label="Exit left part of ||"];
|
|
||||||
11 [label="Enter right part of ||"];
|
|
||||||
12 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
13 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
14 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
15 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
16 [label="Access variable R|<local>/a|"];
|
|
||||||
17 [label="Smart cast: R|<local>/a|"];
|
|
||||||
18 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
19 [label="Exit block"];
|
|
||||||
}
|
|
||||||
20 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter ||"];
|
||||||
|
9 [label="Access variable R|<local>/a|"];
|
||||||
|
10 [label="Const: Null(null)"];
|
||||||
|
11 [label="Equality operator !="];
|
||||||
|
12 [label="Exit left part of ||"];
|
||||||
|
13 [label="Enter right part of ||"];
|
||||||
|
14 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
15 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
16 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
17 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
18 [label="Access variable R|<local>/a|"];
|
||||||
|
19 [label="Smart cast: R|<local>/a|"];
|
||||||
|
20 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
21 [label="Exit block"];
|
||||||
|
}
|
||||||
|
22 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11 15};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13 17};
|
||||||
13 -> {14} [style=dotted];
|
13 -> {14};
|
||||||
14 -> {15} [style=dotted];
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16} [style=dotted];
|
||||||
16 -> {17};
|
16 -> {17} [style=dotted];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
|
20 -> {21};
|
||||||
subgraph cluster_5 {
|
|
||||||
color=red
|
|
||||||
21 [label="Enter function teat_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
22 [label="Enter block"];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter &&"];
|
|
||||||
24 [label="Access variable R|<local>/a|"];
|
|
||||||
25 [label="Const: Null(null)"];
|
|
||||||
26 [label="Equality operator =="];
|
|
||||||
27 [label="Exit left part of &&"];
|
|
||||||
28 [label="Enter right part of &&"];
|
|
||||||
29 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
30 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
31 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
32 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
33 [label="Access variable R|<local>/a|"];
|
|
||||||
34 [label="Smart cast: R|<local>/a|"];
|
|
||||||
35 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
36 [label="Exit block"];
|
|
||||||
}
|
|
||||||
37 [label="Exit function teat_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=red
|
||||||
|
23 [label="Enter function teat_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter block"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter &&"];
|
||||||
|
26 [label="Access variable R|<local>/a|"];
|
||||||
|
27 [label="Const: Null(null)"];
|
||||||
|
28 [label="Equality operator =="];
|
||||||
|
29 [label="Exit left part of &&"];
|
||||||
|
30 [label="Enter right part of &&"];
|
||||||
|
31 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
32 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
33 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
34 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
35 [label="Access variable R|<local>/a|"];
|
||||||
|
36 [label="Smart cast: R|<local>/a|"];
|
||||||
|
37 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
38 [label="Exit block"];
|
||||||
|
}
|
||||||
|
39 [label="Exit function teat_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28 32};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30 34};
|
||||||
30 -> {31} [style=dotted];
|
30 -> {31};
|
||||||
31 -> {32} [style=dotted];
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33} [style=dotted];
|
||||||
33 -> {34};
|
33 -> {34} [style=dotted];
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
|
37 -> {38};
|
||||||
subgraph cluster_8 {
|
|
||||||
color=red
|
|
||||||
38 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
39 [label="Enter block"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
40 [label="Enter when"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
42 [label="Enter ||"];
|
|
||||||
43 [label="Access variable R|<local>/a|"];
|
|
||||||
44 [label="Const: Null(null)"];
|
|
||||||
45 [label="Equality operator !="];
|
|
||||||
46 [label="Exit left part of ||"];
|
|
||||||
47 [label="Enter right part of ||"];
|
|
||||||
48 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
49 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
50 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
51 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
52 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
53 [label="Synthetic else branch"];
|
|
||||||
54 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
55 [label="Enter block"];
|
|
||||||
56 [label="Access variable R|<local>/a|"];
|
|
||||||
57 [label="Smart cast: R|<local>/a|"];
|
|
||||||
58 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
59 [label="Exit block"];
|
|
||||||
}
|
|
||||||
60 [label="Exit when branch result"];
|
|
||||||
61 [label="Exit when"];
|
|
||||||
}
|
|
||||||
62 [label="Access variable R|<local>/a|"];
|
|
||||||
63 [label="Smart cast: R|<local>/a|"];
|
|
||||||
64 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
65 [label="Exit block"];
|
|
||||||
}
|
|
||||||
66 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=red
|
||||||
|
40 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter block"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
42 [label="Enter when"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter ||"];
|
||||||
|
45 [label="Access variable R|<local>/a|"];
|
||||||
|
46 [label="Const: Null(null)"];
|
||||||
|
47 [label="Equality operator !="];
|
||||||
|
48 [label="Exit left part of ||"];
|
||||||
|
49 [label="Enter right part of ||"];
|
||||||
|
50 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
51 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
52 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
53 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
54 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
55 [label="Synthetic else branch"];
|
||||||
|
56 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
57 [label="Enter block"];
|
||||||
|
58 [label="Access variable R|<local>/a|"];
|
||||||
|
59 [label="Smart cast: R|<local>/a|"];
|
||||||
|
60 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
61 [label="Exit block"];
|
||||||
|
}
|
||||||
|
62 [label="Exit when branch result"];
|
||||||
|
63 [label="Exit when"];
|
||||||
|
}
|
||||||
|
64 [label="Access variable R|<local>/a|"];
|
||||||
|
65 [label="Smart cast: R|<local>/a|"];
|
||||||
|
66 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
67 [label="Exit block"];
|
||||||
|
}
|
||||||
|
68 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47 51};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49 53};
|
||||||
49 -> {50} [style=dotted];
|
49 -> {50};
|
||||||
50 -> {51} [style=dotted];
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52} [style=dotted];
|
||||||
52 -> {53 54};
|
52 -> {53} [style=dotted];
|
||||||
53 -> {61};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55 56};
|
||||||
55 -> {56};
|
55 -> {63};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
@@ -178,72 +183,72 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
|
66 -> {67};
|
||||||
subgraph cluster_14 {
|
|
||||||
color=red
|
|
||||||
67 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
68 [label="Enter block"];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
69 [label="Enter when"];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
70 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
71 [label="Enter &&"];
|
|
||||||
72 [label="Access variable R|<local>/a|"];
|
|
||||||
73 [label="Const: Null(null)"];
|
|
||||||
74 [label="Equality operator =="];
|
|
||||||
75 [label="Exit left part of &&"];
|
|
||||||
76 [label="Enter right part of &&"];
|
|
||||||
77 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
78 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
79 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
80 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
81 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
82 [label="Synthetic else branch"];
|
|
||||||
83 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
84 [label="Enter block"];
|
|
||||||
85 [label="Access variable R|<local>/a|"];
|
|
||||||
86 [label="Smart cast: R|<local>/a|"];
|
|
||||||
87 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
88 [label="Exit block"];
|
|
||||||
}
|
|
||||||
89 [label="Exit when branch result"];
|
|
||||||
90 [label="Exit when"];
|
|
||||||
}
|
|
||||||
91 [label="Access variable R|<local>/a|"];
|
|
||||||
92 [label="Smart cast: R|<local>/a|"];
|
|
||||||
93 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
94 [label="Exit block"];
|
|
||||||
}
|
|
||||||
95 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=red
|
||||||
|
69 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
70 [label="Enter block"];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
71 [label="Enter when"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
72 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
73 [label="Enter &&"];
|
||||||
|
74 [label="Access variable R|<local>/a|"];
|
||||||
|
75 [label="Const: Null(null)"];
|
||||||
|
76 [label="Equality operator =="];
|
||||||
|
77 [label="Exit left part of &&"];
|
||||||
|
78 [label="Enter right part of &&"];
|
||||||
|
79 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
80 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
81 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
82 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
83 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
84 [label="Synthetic else branch"];
|
||||||
|
85 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
86 [label="Enter block"];
|
||||||
|
87 [label="Access variable R|<local>/a|"];
|
||||||
|
88 [label="Smart cast: R|<local>/a|"];
|
||||||
|
89 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
90 [label="Exit block"];
|
||||||
|
}
|
||||||
|
91 [label="Exit when branch result"];
|
||||||
|
92 [label="Exit when"];
|
||||||
|
}
|
||||||
|
93 [label="Access variable R|<local>/a|"];
|
||||||
|
94 [label="Smart cast: R|<local>/a|"];
|
||||||
|
95 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
96 [label="Exit block"];
|
||||||
|
}
|
||||||
|
97 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76 80};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78 82};
|
||||||
78 -> {79} [style=dotted];
|
78 -> {79};
|
||||||
79 -> {80} [style=dotted];
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81} [style=dotted];
|
||||||
81 -> {82 83};
|
81 -> {82} [style=dotted];
|
||||||
82 -> {90};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84 85};
|
||||||
84 -> {85};
|
84 -> {92};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
@@ -254,158 +259,158 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
|
95 -> {96};
|
||||||
subgraph cluster_20 {
|
|
||||||
color=red
|
|
||||||
96 [label="Enter function test_5" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
97 [label="Enter block"];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
98 [label="Enter ||"];
|
|
||||||
99 [label="Access variable R|<local>/a|"];
|
|
||||||
100 [label="Const: Null(null)"];
|
|
||||||
101 [label="Equality operator =="];
|
|
||||||
102 [label="Exit left part of ||"];
|
|
||||||
103 [label="Enter right part of ||"];
|
|
||||||
104 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
105 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
106 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
107 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
108 [label="Access variable R|<local>/a|"];
|
|
||||||
109 [label="Smart cast: R|<local>/a|"];
|
|
||||||
110 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
111 [label="Exit block"];
|
|
||||||
}
|
|
||||||
112 [label="Exit function test_5" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=red
|
||||||
|
98 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
99 [label="Enter block"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
100 [label="Enter ||"];
|
||||||
|
101 [label="Access variable R|<local>/a|"];
|
||||||
|
102 [label="Const: Null(null)"];
|
||||||
|
103 [label="Equality operator =="];
|
||||||
|
104 [label="Exit left part of ||"];
|
||||||
|
105 [label="Enter right part of ||"];
|
||||||
|
106 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
107 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
108 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
109 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
110 [label="Access variable R|<local>/a|"];
|
||||||
|
111 [label="Smart cast: R|<local>/a|"];
|
||||||
|
112 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
113 [label="Exit block"];
|
||||||
|
}
|
||||||
|
114 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103 107};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105 109};
|
||||||
105 -> {106} [style=dotted];
|
105 -> {106};
|
||||||
106 -> {107} [style=dotted];
|
106 -> {107};
|
||||||
107 -> {108};
|
107 -> {108} [style=dotted];
|
||||||
108 -> {109};
|
108 -> {109} [style=dotted];
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
|
112 -> {113};
|
||||||
subgraph cluster_23 {
|
|
||||||
color=red
|
|
||||||
113 [label="Enter function teat_6" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
114 [label="Enter block"];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
115 [label="Enter &&"];
|
|
||||||
116 [label="Access variable R|<local>/a|"];
|
|
||||||
117 [label="Const: Null(null)"];
|
|
||||||
118 [label="Equality operator !="];
|
|
||||||
119 [label="Exit left part of &&"];
|
|
||||||
120 [label="Enter right part of &&"];
|
|
||||||
121 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
122 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
123 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
124 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
125 [label="Access variable R|<local>/a|"];
|
|
||||||
126 [label="Smart cast: R|<local>/a|"];
|
|
||||||
127 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
128 [label="Exit block"];
|
|
||||||
}
|
|
||||||
129 [label="Exit function teat_6" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {115};
|
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=red
|
||||||
|
115 [label="Enter function teat_6" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
116 [label="Enter block"];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
117 [label="Enter &&"];
|
||||||
|
118 [label="Access variable R|<local>/a|"];
|
||||||
|
119 [label="Const: Null(null)"];
|
||||||
|
120 [label="Equality operator !="];
|
||||||
|
121 [label="Exit left part of &&"];
|
||||||
|
122 [label="Enter right part of &&"];
|
||||||
|
123 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
124 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
125 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
126 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
127 [label="Access variable R|<local>/a|"];
|
||||||
|
128 [label="Smart cast: R|<local>/a|"];
|
||||||
|
129 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
130 [label="Exit block"];
|
||||||
|
}
|
||||||
|
131 [label="Exit function teat_6" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120 124};
|
119 -> {120};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122 126};
|
||||||
122 -> {123} [style=dotted];
|
122 -> {123};
|
||||||
123 -> {124} [style=dotted];
|
123 -> {124};
|
||||||
124 -> {125};
|
124 -> {125} [style=dotted];
|
||||||
125 -> {126};
|
125 -> {126} [style=dotted];
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {129};
|
||||||
|
129 -> {130};
|
||||||
subgraph cluster_26 {
|
|
||||||
color=red
|
|
||||||
130 [label="Enter function test_7" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_27 {
|
|
||||||
color=blue
|
|
||||||
131 [label="Enter block"];
|
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
132 [label="Enter when"];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
133 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
134 [label="Enter ||"];
|
|
||||||
135 [label="Access variable R|<local>/a|"];
|
|
||||||
136 [label="Const: Null(null)"];
|
|
||||||
137 [label="Equality operator =="];
|
|
||||||
138 [label="Exit left part of ||"];
|
|
||||||
139 [label="Enter right part of ||"];
|
|
||||||
140 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
141 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
142 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
143 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
144 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
145 [label="Synthetic else branch"];
|
|
||||||
146 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_31 {
|
|
||||||
color=blue
|
|
||||||
147 [label="Enter block"];
|
|
||||||
148 [label="Access variable R|<local>/a|"];
|
|
||||||
149 [label="Smart cast: R|<local>/a|"];
|
|
||||||
150 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
151 [label="Exit block"];
|
|
||||||
}
|
|
||||||
152 [label="Exit when branch result"];
|
|
||||||
153 [label="Exit when"];
|
|
||||||
}
|
|
||||||
154 [label="Access variable R|<local>/a|"];
|
|
||||||
155 [label="Smart cast: R|<local>/a|"];
|
|
||||||
156 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
157 [label="Exit block"];
|
|
||||||
}
|
|
||||||
158 [label="Exit function test_7" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=red
|
||||||
|
132 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_28 {
|
||||||
|
color=blue
|
||||||
|
133 [label="Enter block"];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
134 [label="Enter when"];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
135 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
136 [label="Enter ||"];
|
||||||
|
137 [label="Access variable R|<local>/a|"];
|
||||||
|
138 [label="Const: Null(null)"];
|
||||||
|
139 [label="Equality operator =="];
|
||||||
|
140 [label="Exit left part of ||"];
|
||||||
|
141 [label="Enter right part of ||"];
|
||||||
|
142 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
143 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
144 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
145 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
146 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
147 [label="Synthetic else branch"];
|
||||||
|
148 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_32 {
|
||||||
|
color=blue
|
||||||
|
149 [label="Enter block"];
|
||||||
|
150 [label="Access variable R|<local>/a|"];
|
||||||
|
151 [label="Smart cast: R|<local>/a|"];
|
||||||
|
152 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
153 [label="Exit block"];
|
||||||
|
}
|
||||||
|
154 [label="Exit when branch result"];
|
||||||
|
155 [label="Exit when"];
|
||||||
|
}
|
||||||
|
156 [label="Access variable R|<local>/a|"];
|
||||||
|
157 [label="Smart cast: R|<local>/a|"];
|
||||||
|
158 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
159 [label="Exit block"];
|
||||||
|
}
|
||||||
|
160 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
134 -> {135};
|
134 -> {135};
|
||||||
135 -> {136};
|
135 -> {136};
|
||||||
136 -> {137};
|
136 -> {137};
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
138 -> {139 143};
|
138 -> {139};
|
||||||
139 -> {140};
|
139 -> {140};
|
||||||
140 -> {141};
|
140 -> {141 145};
|
||||||
141 -> {142} [style=dotted];
|
141 -> {142};
|
||||||
142 -> {143} [style=dotted];
|
142 -> {143};
|
||||||
143 -> {144};
|
143 -> {144} [style=dotted];
|
||||||
144 -> {145 146};
|
144 -> {145} [style=dotted];
|
||||||
145 -> {153};
|
145 -> {146};
|
||||||
146 -> {147};
|
146 -> {147 148};
|
||||||
147 -> {148};
|
147 -> {155};
|
||||||
148 -> {149};
|
148 -> {149};
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
150 -> {151};
|
150 -> {151};
|
||||||
@@ -416,72 +421,72 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
155 -> {156};
|
155 -> {156};
|
||||||
156 -> {157};
|
156 -> {157};
|
||||||
157 -> {158};
|
157 -> {158};
|
||||||
|
158 -> {159};
|
||||||
subgraph cluster_32 {
|
|
||||||
color=red
|
|
||||||
159 [label="Enter function test_8" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
160 [label="Enter block"];
|
|
||||||
subgraph cluster_34 {
|
|
||||||
color=blue
|
|
||||||
161 [label="Enter when"];
|
|
||||||
subgraph cluster_35 {
|
|
||||||
color=blue
|
|
||||||
162 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_36 {
|
|
||||||
color=blue
|
|
||||||
163 [label="Enter &&"];
|
|
||||||
164 [label="Access variable R|<local>/a|"];
|
|
||||||
165 [label="Const: Null(null)"];
|
|
||||||
166 [label="Equality operator !="];
|
|
||||||
167 [label="Exit left part of &&"];
|
|
||||||
168 [label="Enter right part of &&"];
|
|
||||||
169 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
||||||
170 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
||||||
171 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
172 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
173 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
174 [label="Synthetic else branch"];
|
|
||||||
175 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_37 {
|
|
||||||
color=blue
|
|
||||||
176 [label="Enter block"];
|
|
||||||
177 [label="Access variable R|<local>/a|"];
|
|
||||||
178 [label="Smart cast: R|<local>/a|"];
|
|
||||||
179 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
180 [label="Exit block"];
|
|
||||||
}
|
|
||||||
181 [label="Exit when branch result"];
|
|
||||||
182 [label="Exit when"];
|
|
||||||
}
|
|
||||||
183 [label="Access variable R|<local>/a|"];
|
|
||||||
184 [label="Smart cast: R|<local>/a|"];
|
|
||||||
185 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
|
||||||
186 [label="Exit block"];
|
|
||||||
}
|
|
||||||
187 [label="Exit function test_8" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
159 -> {160};
|
159 -> {160};
|
||||||
160 -> {161};
|
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=red
|
||||||
|
161 [label="Enter function test_8" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_34 {
|
||||||
|
color=blue
|
||||||
|
162 [label="Enter block"];
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=blue
|
||||||
|
163 [label="Enter when"];
|
||||||
|
subgraph cluster_36 {
|
||||||
|
color=blue
|
||||||
|
164 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_37 {
|
||||||
|
color=blue
|
||||||
|
165 [label="Enter &&"];
|
||||||
|
166 [label="Access variable R|<local>/a|"];
|
||||||
|
167 [label="Const: Null(null)"];
|
||||||
|
168 [label="Equality operator !="];
|
||||||
|
169 [label="Exit left part of &&"];
|
||||||
|
170 [label="Enter right part of &&"];
|
||||||
|
171 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
|
172 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
|
173 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
174 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
175 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
176 [label="Synthetic else branch"];
|
||||||
|
177 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_38 {
|
||||||
|
color=blue
|
||||||
|
178 [label="Enter block"];
|
||||||
|
179 [label="Access variable R|<local>/a|"];
|
||||||
|
180 [label="Smart cast: R|<local>/a|"];
|
||||||
|
181 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
182 [label="Exit block"];
|
||||||
|
}
|
||||||
|
183 [label="Exit when branch result"];
|
||||||
|
184 [label="Exit when"];
|
||||||
|
}
|
||||||
|
185 [label="Access variable R|<local>/a|"];
|
||||||
|
186 [label="Smart cast: R|<local>/a|"];
|
||||||
|
187 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
188 [label="Exit block"];
|
||||||
|
}
|
||||||
|
189 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
161 -> {162};
|
161 -> {162};
|
||||||
162 -> {163};
|
162 -> {163};
|
||||||
163 -> {164};
|
163 -> {164};
|
||||||
164 -> {165};
|
164 -> {165};
|
||||||
165 -> {166};
|
165 -> {166};
|
||||||
166 -> {167};
|
166 -> {167};
|
||||||
167 -> {168 172};
|
167 -> {168};
|
||||||
168 -> {169};
|
168 -> {169};
|
||||||
169 -> {170};
|
169 -> {170 174};
|
||||||
170 -> {171} [style=dotted];
|
170 -> {171};
|
||||||
171 -> {172} [style=dotted];
|
171 -> {172};
|
||||||
172 -> {173};
|
172 -> {173} [style=dotted];
|
||||||
173 -> {174 175};
|
173 -> {174} [style=dotted];
|
||||||
174 -> {182};
|
174 -> {175};
|
||||||
175 -> {176};
|
175 -> {176 177};
|
||||||
176 -> {177};
|
176 -> {184};
|
||||||
177 -> {178};
|
177 -> {178};
|
||||||
178 -> {179};
|
178 -> {179};
|
||||||
179 -> {180};
|
179 -> {180};
|
||||||
@@ -492,5 +497,7 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
184 -> {185};
|
184 -> {185};
|
||||||
185 -> {186};
|
185 -> {186};
|
||||||
186 -> {187};
|
186 -> {187};
|
||||||
|
187 -> {188};
|
||||||
|
188 -> {189};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+325
-318
@@ -5,82 +5,87 @@ digraph boundSmartcasts_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file boundSmartcasts.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file boundSmartcasts.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter class B" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
5 [label="Exit class B" style="filled" fillcolor=red];
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5} [color=green];
|
4 -> {5};
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
6 [label="Enter function bar" style="filled" fillcolor=red];
|
6 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
7 [label="Exit function bar" style="filled" fillcolor=red];
|
7 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
6 -> {7};
|
6 -> {7} [color=green];
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function test_1" style="filled" fillcolor=red];
|
8 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
9 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Access variable R|<local>/x|"];
|
|
||||||
11 [label="Variable declaration: lval y: R|kotlin/Any|"];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter when"];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
13 [label="Enter when branch condition "];
|
|
||||||
14 [label="Access variable R|<local>/x|"];
|
|
||||||
15 [label="Type operator: (R|<local>/x| is R|A|)"];
|
|
||||||
16 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
17 [label="Synthetic else branch"];
|
|
||||||
18 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
20 [label="Access variable R|<local>/x|"];
|
|
||||||
21 [label="Smart cast: R|<local>/x|"];
|
|
||||||
22 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
23 [label="Access variable R|<local>/y|"];
|
|
||||||
24 [label="Smart cast: R|<local>/y|"];
|
|
||||||
25 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Exit block"];
|
|
||||||
}
|
|
||||||
27 [label="Exit when branch result"];
|
|
||||||
28 [label="Exit when"];
|
|
||||||
}
|
|
||||||
29 [label="Exit block"];
|
|
||||||
}
|
|
||||||
30 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
10 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
12 [label="Access variable R|<local>/x|"];
|
||||||
|
13 [label="Variable declaration: lval y: R|kotlin/Any|"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
14 [label="Enter when"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
15 [label="Enter when branch condition "];
|
||||||
|
16 [label="Access variable R|<local>/x|"];
|
||||||
|
17 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||||
|
18 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
19 [label="Synthetic else branch"];
|
||||||
|
20 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
21 [label="Enter block"];
|
||||||
|
22 [label="Access variable R|<local>/x|"];
|
||||||
|
23 [label="Smart cast: R|<local>/x|"];
|
||||||
|
24 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
25 [label="Access variable R|<local>/y|"];
|
||||||
|
26 [label="Smart cast: R|<local>/y|"];
|
||||||
|
27 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Exit block"];
|
||||||
|
}
|
||||||
|
29 [label="Exit when branch result"];
|
||||||
|
30 [label="Exit when"];
|
||||||
|
}
|
||||||
|
31 [label="Exit block"];
|
||||||
|
}
|
||||||
|
32 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17 18};
|
16 -> {17};
|
||||||
17 -> {28};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19 20};
|
||||||
19 -> {20};
|
19 -> {30};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
@@ -91,57 +96,57 @@ digraph boundSmartcasts_kt {
|
|||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
31 [label="Enter function test_2" style="filled" fillcolor=red];
|
33 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter block"];
|
34 [label="Enter block"];
|
||||||
33 [label="Access variable R|<local>/x|"];
|
35 [label="Access variable R|<local>/x|"];
|
||||||
34 [label="Variable declaration: lval y: R|kotlin/Any|"];
|
36 [label="Variable declaration: lval y: R|kotlin/Any|"];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
35 [label="Enter when"];
|
37 [label="Enter when"];
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
36 [label="Enter when branch condition "];
|
|
||||||
37 [label="Access variable R|<local>/y|"];
|
|
||||||
38 [label="Type operator: (R|<local>/y| is R|A|)"];
|
|
||||||
39 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
40 [label="Synthetic else branch"];
|
|
||||||
41 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
42 [label="Enter block"];
|
38 [label="Enter when branch condition "];
|
||||||
43 [label="Access variable R|<local>/x|"];
|
39 [label="Access variable R|<local>/y|"];
|
||||||
44 [label="Smart cast: R|<local>/x|"];
|
40 [label="Type operator: (R|<local>/y| is R|A|)"];
|
||||||
45 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
41 [label="Exit when branch condition"];
|
||||||
46 [label="Access variable R|<local>/y|"];
|
|
||||||
47 [label="Smart cast: R|<local>/y|"];
|
|
||||||
48 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
49 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
50 [label="Exit when branch result"];
|
42 [label="Synthetic else branch"];
|
||||||
51 [label="Exit when"];
|
43 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter block"];
|
||||||
|
45 [label="Access variable R|<local>/x|"];
|
||||||
|
46 [label="Smart cast: R|<local>/x|"];
|
||||||
|
47 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
48 [label="Access variable R|<local>/y|"];
|
||||||
|
49 [label="Smart cast: R|<local>/y|"];
|
||||||
|
50 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
51 [label="Exit block"];
|
||||||
|
}
|
||||||
|
52 [label="Exit when branch result"];
|
||||||
|
53 [label="Exit when"];
|
||||||
}
|
}
|
||||||
52 [label="Exit block"];
|
54 [label="Exit block"];
|
||||||
}
|
}
|
||||||
53 [label="Exit function test_2" style="filled" fillcolor=red];
|
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
31 -> {32};
|
|
||||||
32 -> {33};
|
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40 41};
|
39 -> {40};
|
||||||
40 -> {51};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42 43};
|
||||||
42 -> {43};
|
42 -> {53};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
@@ -152,82 +157,82 @@ digraph boundSmartcasts_kt {
|
|||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
|
53 -> {54};
|
||||||
|
54 -> {55};
|
||||||
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_15 {
|
||||||
color=red
|
color=red
|
||||||
54 [label="Enter function test_3" style="filled" fillcolor=red];
|
56 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
55 [label="Enter block"];
|
57 [label="Enter block"];
|
||||||
56 [label="Access variable R|<local>/x|"];
|
58 [label="Access variable R|<local>/x|"];
|
||||||
57 [label="Variable declaration: lvar z: R|kotlin/Any|"];
|
59 [label="Variable declaration: lvar z: R|kotlin/Any|"];
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
58 [label="Enter when"];
|
60 [label="Enter when"];
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
59 [label="Enter when branch condition "];
|
|
||||||
60 [label="Access variable R|<local>/x|"];
|
|
||||||
61 [label="Type operator: (R|<local>/x| is R|A|)"];
|
|
||||||
62 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
63 [label="Synthetic else branch"];
|
|
||||||
64 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_18 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
65 [label="Enter block"];
|
61 [label="Enter when branch condition "];
|
||||||
66 [label="Access variable R|<local>/z|"];
|
62 [label="Access variable R|<local>/x|"];
|
||||||
67 [label="Smart cast: R|<local>/z|"];
|
63 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||||
68 [label="Function call: R|<local>/z|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
64 [label="Exit when branch condition"];
|
||||||
69 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
70 [label="Exit when branch result"];
|
65 [label="Synthetic else branch"];
|
||||||
71 [label="Exit when"];
|
66 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_19 {
|
||||||
72 [label="Access variable R|<local>/y|"];
|
|
||||||
73 [label="Assignment: R|<local>/z|"];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
74 [label="Enter when"];
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
color=blue
|
||||||
75 [label="Enter when branch condition "];
|
67 [label="Enter block"];
|
||||||
76 [label="Access variable R|<local>/y|"];
|
68 [label="Access variable R|<local>/z|"];
|
||||||
77 [label="Type operator: (R|<local>/y| is R|B|)"];
|
69 [label="Smart cast: R|<local>/z|"];
|
||||||
78 [label="Exit when branch condition"];
|
70 [label="Function call: R|<local>/z|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
71 [label="Exit block"];
|
||||||
}
|
}
|
||||||
79 [label="Synthetic else branch"];
|
72 [label="Exit when branch result"];
|
||||||
80 [label="Enter when branch result"];
|
73 [label="Exit when"];
|
||||||
|
}
|
||||||
|
74 [label="Access variable R|<local>/y|"];
|
||||||
|
75 [label="Assignment: R|<local>/z|"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
76 [label="Enter when"];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
81 [label="Enter block"];
|
77 [label="Enter when branch condition "];
|
||||||
82 [label="Access variable R|<local>/z|"];
|
78 [label="Access variable R|<local>/y|"];
|
||||||
83 [label="Smart cast: R|<local>/z|"];
|
79 [label="Type operator: (R|<local>/y| is R|B|)"];
|
||||||
84 [label="Function call: R|<local>/z|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
80 [label="Exit when branch condition"];
|
||||||
85 [label="Access variable R|<local>/z|"];
|
|
||||||
86 [label="Smart cast: R|<local>/z|"];
|
|
||||||
87 [label="Function call: R|<local>/z|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
88 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
89 [label="Exit when branch result"];
|
81 [label="Synthetic else branch"];
|
||||||
90 [label="Exit when"];
|
82 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
83 [label="Enter block"];
|
||||||
|
84 [label="Access variable R|<local>/z|"];
|
||||||
|
85 [label="Smart cast: R|<local>/z|"];
|
||||||
|
86 [label="Function call: R|<local>/z|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
|
87 [label="Access variable R|<local>/z|"];
|
||||||
|
88 [label="Smart cast: R|<local>/z|"];
|
||||||
|
89 [label="Function call: R|<local>/z|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
90 [label="Exit block"];
|
||||||
|
}
|
||||||
|
91 [label="Exit when branch result"];
|
||||||
|
92 [label="Exit when"];
|
||||||
}
|
}
|
||||||
91 [label="Exit block"];
|
93 [label="Exit block"];
|
||||||
}
|
}
|
||||||
92 [label="Exit function test_3" style="filled" fillcolor=red];
|
94 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
54 -> {55};
|
|
||||||
55 -> {56};
|
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63 64};
|
62 -> {63};
|
||||||
63 -> {71};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65 66};
|
||||||
65 -> {66};
|
65 -> {73};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
@@ -240,10 +245,10 @@ digraph boundSmartcasts_kt {
|
|||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79 80};
|
78 -> {79};
|
||||||
79 -> {90};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81 82};
|
||||||
81 -> {82};
|
81 -> {92};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
@@ -254,56 +259,56 @@ digraph boundSmartcasts_kt {
|
|||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
|
92 -> {93};
|
||||||
|
93 -> {94};
|
||||||
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=red
|
color=red
|
||||||
93 [label="Enter function test_4" style="filled" fillcolor=red];
|
95 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
subgraph cluster_23 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
94 [label="Enter block"];
|
96 [label="Enter block"];
|
||||||
95 [label="Const: Int(1)"];
|
97 [label="Const: Int(1)"];
|
||||||
96 [label="Variable declaration: lvar x: R|kotlin/Any|"];
|
98 [label="Variable declaration: lvar x: R|kotlin/Any|"];
|
||||||
97 [label="Access variable R|<local>/x|"];
|
|
||||||
98 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
|
||||||
99 [label="Access variable R|<local>/x|"];
|
99 [label="Access variable R|<local>/x|"];
|
||||||
100 [label="Smart cast: R|<local>/x|"];
|
100 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
||||||
101 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
101 [label="Access variable R|<local>/x|"];
|
||||||
102 [label="Access variable R|<local>/y|"];
|
102 [label="Smart cast: R|<local>/x|"];
|
||||||
103 [label="Assignment: R|<local>/x|"];
|
103 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
104 [label="Access variable R|<local>/x|"];
|
104 [label="Access variable R|<local>/y|"];
|
||||||
105 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
105 [label="Assignment: R|<local>/x|"];
|
||||||
subgraph cluster_24 {
|
106 [label="Access variable R|<local>/x|"];
|
||||||
|
107 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
||||||
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
106 [label="Enter when"];
|
108 [label="Enter when"];
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
107 [label="Enter when branch condition "];
|
|
||||||
108 [label="Access variable R|<local>/y|"];
|
|
||||||
109 [label="Type operator: (R|<local>/y| is R|A|)"];
|
|
||||||
110 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
111 [label="Synthetic else branch"];
|
|
||||||
112 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_26 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
113 [label="Enter block"];
|
109 [label="Enter when branch condition "];
|
||||||
114 [label="Access variable R|<local>/x|"];
|
110 [label="Access variable R|<local>/y|"];
|
||||||
115 [label="Smart cast: R|<local>/x|"];
|
111 [label="Type operator: (R|<local>/y| is R|A|)"];
|
||||||
116 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
112 [label="Exit when branch condition"];
|
||||||
117 [label="Access variable R|<local>/y|"];
|
|
||||||
118 [label="Smart cast: R|<local>/y|"];
|
|
||||||
119 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
120 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
121 [label="Exit when branch result"];
|
113 [label="Synthetic else branch"];
|
||||||
122 [label="Exit when"];
|
114 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
115 [label="Enter block"];
|
||||||
|
116 [label="Access variable R|<local>/x|"];
|
||||||
|
117 [label="Smart cast: R|<local>/x|"];
|
||||||
|
118 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
119 [label="Access variable R|<local>/y|"];
|
||||||
|
120 [label="Smart cast: R|<local>/y|"];
|
||||||
|
121 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
122 [label="Exit block"];
|
||||||
|
}
|
||||||
|
123 [label="Exit when branch result"];
|
||||||
|
124 [label="Exit when"];
|
||||||
}
|
}
|
||||||
123 [label="Exit block"];
|
125 [label="Exit block"];
|
||||||
}
|
}
|
||||||
124 [label="Exit function test_4" style="filled" fillcolor=red];
|
126 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
93 -> {94};
|
|
||||||
94 -> {95};
|
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
@@ -319,10 +324,10 @@ digraph boundSmartcasts_kt {
|
|||||||
107 -> {108};
|
107 -> {108};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111 112};
|
110 -> {111};
|
||||||
111 -> {122};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113 114};
|
||||||
113 -> {114};
|
113 -> {124};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
@@ -333,89 +338,89 @@ digraph boundSmartcasts_kt {
|
|||||||
121 -> {122};
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
|
124 -> {125};
|
||||||
|
125 -> {126};
|
||||||
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=red
|
color=red
|
||||||
125 [label="Enter class D" style="filled" fillcolor=red];
|
127 [label="Enter class D" style="filled" fillcolor=red];
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
126 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
127 [label="Access variable R|<local>/any|"];
|
|
||||||
128 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_29 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
129 [label="Enter function <init>" style="filled" fillcolor=red];
|
128 [label="Enter property" style="filled" fillcolor=red];
|
||||||
130 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
129 [label="Access variable R|<local>/any|"];
|
||||||
131 [label="Exit function <init>" style="filled" fillcolor=red];
|
130 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
132 [label="Exit class D" style="filled" fillcolor=red];
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
131 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
132 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
133 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
134 [label="Exit class D" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
125 -> {126} [color=green];
|
127 -> {128} [color=green];
|
||||||
125 -> {132} [style=dotted];
|
127 -> {134} [style=dotted];
|
||||||
125 -> {126 129} [style=dashed];
|
127 -> {128 131} [style=dashed];
|
||||||
126 -> {127};
|
128 -> {129};
|
||||||
127 -> {128};
|
|
||||||
128 -> {129} [color=green];
|
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
130 -> {131};
|
130 -> {131} [color=green];
|
||||||
131 -> {132} [color=green];
|
131 -> {132};
|
||||||
|
132 -> {133};
|
||||||
|
133 -> {134} [color=green];
|
||||||
|
|
||||||
subgraph cluster_30 {
|
subgraph cluster_31 {
|
||||||
color=red
|
color=red
|
||||||
133 [label="Enter function baz" style="filled" fillcolor=red];
|
135 [label="Enter function baz" style="filled" fillcolor=red];
|
||||||
subgraph cluster_31 {
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
134 [label="Enter block"];
|
136 [label="Enter block"];
|
||||||
135 [label="Exit block"];
|
137 [label="Exit block"];
|
||||||
}
|
}
|
||||||
136 [label="Exit function baz" style="filled" fillcolor=red];
|
138 [label="Exit function baz" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
133 -> {134};
|
|
||||||
134 -> {135};
|
|
||||||
135 -> {136};
|
135 -> {136};
|
||||||
|
136 -> {137};
|
||||||
subgraph cluster_32 {
|
|
||||||
color=red
|
|
||||||
137 [label="Enter function test_5" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
138 [label="Enter block"];
|
|
||||||
139 [label="Access variable R|<local>/d|"];
|
|
||||||
140 [label="Access variable R|/D.any|"];
|
|
||||||
141 [label="Exit lhs of ?:"];
|
|
||||||
142 [label="Enter rhs of ?:"];
|
|
||||||
143 [label="Jump: ^test_5 Unit"];
|
|
||||||
144 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
145 [label="Lhs of ?: is not null"];
|
|
||||||
146 [label="Exit ?:"];
|
|
||||||
147 [label="Variable declaration: lval a: R|kotlin/Any|"];
|
|
||||||
148 [label="Access variable R|<local>/a|"];
|
|
||||||
149 [label="Function call: R|<local>/a|.R|/baz|()" style="filled" fillcolor=yellow];
|
|
||||||
150 [label="Access variable R|<local>/d|"];
|
|
||||||
151 [label="Access variable R|/D.any|"];
|
|
||||||
152 [label="Smart cast: R|<local>/d|.R|/D.any|"];
|
|
||||||
153 [label="Function call: R|<local>/d|.R|/D.any|.R|/baz|()" style="filled" fillcolor=yellow];
|
|
||||||
154 [label="Access variable R|<local>/a|"];
|
|
||||||
155 [label="Type operator: (R|<local>/a| as R|A|)"];
|
|
||||||
156 [label="Access variable R|<local>/a|"];
|
|
||||||
157 [label="Smart cast: R|<local>/a|"];
|
|
||||||
158 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
159 [label="Exit block"];
|
|
||||||
}
|
|
||||||
160 [label="Exit function test_5" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
138 -> {139};
|
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=red
|
||||||
|
139 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_34 {
|
||||||
|
color=blue
|
||||||
|
140 [label="Enter block"];
|
||||||
|
141 [label="Access variable R|<local>/d|"];
|
||||||
|
142 [label="Access variable R|/D.any|"];
|
||||||
|
143 [label="Exit lhs of ?:"];
|
||||||
|
144 [label="Enter rhs of ?:"];
|
||||||
|
145 [label="Jump: ^test_5 Unit"];
|
||||||
|
146 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
147 [label="Lhs of ?: is not null"];
|
||||||
|
148 [label="Exit ?:"];
|
||||||
|
149 [label="Variable declaration: lval a: R|kotlin/Any|"];
|
||||||
|
150 [label="Access variable R|<local>/a|"];
|
||||||
|
151 [label="Function call: R|<local>/a|.R|/baz|()" style="filled" fillcolor=yellow];
|
||||||
|
152 [label="Access variable R|<local>/d|"];
|
||||||
|
153 [label="Access variable R|/D.any|"];
|
||||||
|
154 [label="Smart cast: R|<local>/d|.R|/D.any|"];
|
||||||
|
155 [label="Function call: R|<local>/d|.R|/D.any|.R|/baz|()" style="filled" fillcolor=yellow];
|
||||||
|
156 [label="Access variable R|<local>/a|"];
|
||||||
|
157 [label="Type operator: (R|<local>/a| as R|A|)"];
|
||||||
|
158 [label="Access variable R|<local>/a|"];
|
||||||
|
159 [label="Smart cast: R|<local>/a|"];
|
||||||
|
160 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
161 [label="Exit block"];
|
||||||
|
}
|
||||||
|
162 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
139 -> {140};
|
139 -> {140};
|
||||||
140 -> {141};
|
140 -> {141};
|
||||||
141 -> {142 145};
|
141 -> {142};
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {160};
|
143 -> {144 147};
|
||||||
143 -> {144} [style=dotted];
|
144 -> {145};
|
||||||
144 -> {146} [style=dotted];
|
145 -> {162};
|
||||||
145 -> {146};
|
145 -> {146} [style=dotted];
|
||||||
146 -> {147};
|
146 -> {148} [style=dotted];
|
||||||
147 -> {148};
|
147 -> {148};
|
||||||
148 -> {149};
|
148 -> {149};
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
@@ -429,35 +434,35 @@ digraph boundSmartcasts_kt {
|
|||||||
157 -> {158};
|
157 -> {158};
|
||||||
158 -> {159};
|
158 -> {159};
|
||||||
159 -> {160};
|
159 -> {160};
|
||||||
|
160 -> {161};
|
||||||
subgraph cluster_34 {
|
|
||||||
color=red
|
|
||||||
161 [label="Enter function test_6" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_35 {
|
|
||||||
color=blue
|
|
||||||
162 [label="Enter block"];
|
|
||||||
163 [label="Access variable R|<local>/d1|"];
|
|
||||||
164 [label="Access variable R|/D.any|"];
|
|
||||||
165 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
|
||||||
166 [label="Access variable R|<local>/a|"];
|
|
||||||
167 [label="Type operator: (R|<local>/a| as R|A|)"];
|
|
||||||
168 [label="Access variable R|<local>/a|"];
|
|
||||||
169 [label="Smart cast: R|<local>/a|"];
|
|
||||||
170 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
171 [label="Access variable R|<local>/d1|"];
|
|
||||||
172 [label="Access variable R|/D.any|"];
|
|
||||||
173 [label="Smart cast: R|<local>/d1|.R|/D.any|"];
|
|
||||||
174 [label="Function call: R|<local>/d1|.R|/D.any|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
175 [label="Access variable R|<local>/d1|"];
|
|
||||||
176 [label="Access variable R|/D.any|"];
|
|
||||||
177 [label="Smart cast: R|<local>/d1|.R|/D.any|"];
|
|
||||||
178 [label="Function call: R|<local>/d1|.R|/D.any|.R|/baz|()" style="filled" fillcolor=yellow];
|
|
||||||
179 [label="Exit block"];
|
|
||||||
}
|
|
||||||
180 [label="Exit function test_6" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
161 -> {162};
|
161 -> {162};
|
||||||
162 -> {163};
|
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=red
|
||||||
|
163 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_36 {
|
||||||
|
color=blue
|
||||||
|
164 [label="Enter block"];
|
||||||
|
165 [label="Access variable R|<local>/d1|"];
|
||||||
|
166 [label="Access variable R|/D.any|"];
|
||||||
|
167 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
||||||
|
168 [label="Access variable R|<local>/a|"];
|
||||||
|
169 [label="Type operator: (R|<local>/a| as R|A|)"];
|
||||||
|
170 [label="Access variable R|<local>/a|"];
|
||||||
|
171 [label="Smart cast: R|<local>/a|"];
|
||||||
|
172 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
173 [label="Access variable R|<local>/d1|"];
|
||||||
|
174 [label="Access variable R|/D.any|"];
|
||||||
|
175 [label="Smart cast: R|<local>/d1|.R|/D.any|"];
|
||||||
|
176 [label="Function call: R|<local>/d1|.R|/D.any|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
177 [label="Access variable R|<local>/d1|"];
|
||||||
|
178 [label="Access variable R|/D.any|"];
|
||||||
|
179 [label="Smart cast: R|<local>/d1|.R|/D.any|"];
|
||||||
|
180 [label="Function call: R|<local>/d1|.R|/D.any|.R|/baz|()" style="filled" fillcolor=yellow];
|
||||||
|
181 [label="Exit block"];
|
||||||
|
}
|
||||||
|
182 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
163 -> {164};
|
163 -> {164};
|
||||||
164 -> {165};
|
164 -> {165};
|
||||||
165 -> {166};
|
165 -> {166};
|
||||||
@@ -475,47 +480,47 @@ digraph boundSmartcasts_kt {
|
|||||||
177 -> {178};
|
177 -> {178};
|
||||||
178 -> {179};
|
178 -> {179};
|
||||||
179 -> {180};
|
179 -> {180};
|
||||||
|
180 -> {181};
|
||||||
subgraph cluster_36 {
|
|
||||||
color=red
|
|
||||||
181 [label="Enter function test_7" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_37 {
|
|
||||||
color=blue
|
|
||||||
182 [label="Enter block"];
|
|
||||||
183 [label="Access variable R|<local>/d1|"];
|
|
||||||
184 [label="Enter safe call"];
|
|
||||||
185 [label="Access variable R|/D.any|"];
|
|
||||||
186 [label="Exit safe call"];
|
|
||||||
187 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
|
||||||
188 [label="Access variable R|<local>/d2|"];
|
|
||||||
189 [label="Enter safe call"];
|
|
||||||
190 [label="Access variable R|/D.any|"];
|
|
||||||
191 [label="Exit safe call"];
|
|
||||||
192 [label="Variable declaration: lval b: R|kotlin/Any?|"];
|
|
||||||
193 [label="Access variable R|<local>/a|"];
|
|
||||||
194 [label="Type operator: (R|<local>/a| as R|A|)"];
|
|
||||||
195 [label="Access variable R|<local>/a|"];
|
|
||||||
196 [label="Smart cast: R|<local>/a|"];
|
|
||||||
197 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
198 [label="Access variable R|<local>/b|"];
|
|
||||||
199 [label="Type operator: (R|<local>/b| as R|B|)"];
|
|
||||||
200 [label="Access variable R|<local>/b|"];
|
|
||||||
201 [label="Smart cast: R|<local>/b|"];
|
|
||||||
202 [label="Function call: R|<local>/b|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
203 [label="Exit block"];
|
|
||||||
}
|
|
||||||
204 [label="Exit function test_7" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
181 -> {182};
|
181 -> {182};
|
||||||
182 -> {183};
|
|
||||||
183 -> {184 186};
|
subgraph cluster_37 {
|
||||||
|
color=red
|
||||||
|
183 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_38 {
|
||||||
|
color=blue
|
||||||
|
184 [label="Enter block"];
|
||||||
|
185 [label="Access variable R|<local>/d1|"];
|
||||||
|
186 [label="Enter safe call"];
|
||||||
|
187 [label="Access variable R|/D.any|"];
|
||||||
|
188 [label="Exit safe call"];
|
||||||
|
189 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
||||||
|
190 [label="Access variable R|<local>/d2|"];
|
||||||
|
191 [label="Enter safe call"];
|
||||||
|
192 [label="Access variable R|/D.any|"];
|
||||||
|
193 [label="Exit safe call"];
|
||||||
|
194 [label="Variable declaration: lval b: R|kotlin/Any?|"];
|
||||||
|
195 [label="Access variable R|<local>/a|"];
|
||||||
|
196 [label="Type operator: (R|<local>/a| as R|A|)"];
|
||||||
|
197 [label="Access variable R|<local>/a|"];
|
||||||
|
198 [label="Smart cast: R|<local>/a|"];
|
||||||
|
199 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
200 [label="Access variable R|<local>/b|"];
|
||||||
|
201 [label="Type operator: (R|<local>/b| as R|B|)"];
|
||||||
|
202 [label="Access variable R|<local>/b|"];
|
||||||
|
203 [label="Smart cast: R|<local>/b|"];
|
||||||
|
204 [label="Function call: R|<local>/b|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
205 [label="Exit block"];
|
||||||
|
}
|
||||||
|
206 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
183 -> {184};
|
||||||
184 -> {185};
|
184 -> {185};
|
||||||
185 -> {186};
|
185 -> {186 188};
|
||||||
186 -> {187};
|
186 -> {187};
|
||||||
187 -> {188};
|
187 -> {188};
|
||||||
188 -> {189 191};
|
188 -> {189};
|
||||||
189 -> {190};
|
189 -> {190};
|
||||||
190 -> {191};
|
190 -> {191 193};
|
||||||
191 -> {192};
|
191 -> {192};
|
||||||
192 -> {193};
|
192 -> {193};
|
||||||
193 -> {194};
|
193 -> {194};
|
||||||
@@ -529,5 +534,7 @@ digraph boundSmartcasts_kt {
|
|||||||
201 -> {202};
|
201 -> {202};
|
||||||
202 -> {203};
|
202 -> {203};
|
||||||
203 -> {204};
|
203 -> {204};
|
||||||
|
204 -> {205};
|
||||||
|
205 -> {206};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+770
-763
File diff suppressed because it is too large
Load Diff
Vendored
+99
-92
@@ -5,117 +5,124 @@ digraph functionCallBound_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class Base" style="filled" fillcolor=red];
|
0 [label="Enter file functionCallBound.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file functionCallBound.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
4 [label="Exit class Base" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
|
||||||
0 -> {1} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter class Sub" style="filled" fillcolor=red];
|
2 [label="Enter class Base" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter property" style="filled" fillcolor=red];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
7 [label="Access variable R|<local>/data|"];
|
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
8 [label="Exit property" style="filled" fillcolor=red];
|
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
6 [label="Exit class Base" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {6} [style=dotted];
|
||||||
|
2 -> {3} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
7 [label="Enter class Sub" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
8 [label="Enter property" style="filled" fillcolor=red];
|
||||||
10 [label="Delegated constructor call: super<R|Base|>()" style="filled" fillcolor=yellow];
|
9 [label="Access variable R|<local>/data|"];
|
||||||
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
10 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
12 [label="Exit class Sub" style="filled" fillcolor=red];
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
12 [label="Delegated constructor call: super<R|Base|>()" style="filled" fillcolor=yellow];
|
||||||
|
13 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
14 [label="Exit class Sub" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6} [color=green];
|
7 -> {8} [color=green];
|
||||||
5 -> {12} [style=dotted];
|
7 -> {14} [style=dotted];
|
||||||
5 -> {6 9} [style=dashed];
|
7 -> {8 11} [style=dashed];
|
||||||
6 -> {7};
|
8 -> {9};
|
||||||
7 -> {8};
|
|
||||||
8 -> {9} [color=green];
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11} [color=green];
|
||||||
11 -> {12} [color=green];
|
11 -> {12};
|
||||||
|
12 -> {13};
|
||||||
|
13 -> {14} [color=green];
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=red
|
color=red
|
||||||
13 [label="Enter function isOk" style="filled" fillcolor=red];
|
15 [label="Enter function isOk" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter block"];
|
16 [label="Enter block"];
|
||||||
15 [label="Const: Boolean(true)"];
|
17 [label="Const: Boolean(true)"];
|
||||||
16 [label="Jump: ^isOk Boolean(true)"];
|
18 [label="Jump: ^isOk Boolean(true)"];
|
||||||
17 [label="Stub" style="filled" fillcolor=gray];
|
19 [label="Stub" style="filled" fillcolor=gray];
|
||||||
18 [label="Exit block" style="filled" fillcolor=gray];
|
20 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
19 [label="Exit function isOk" style="filled" fillcolor=red];
|
21 [label="Exit function isOk" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
13 -> {14};
|
|
||||||
14 -> {15};
|
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {19};
|
16 -> {17};
|
||||||
16 -> {17} [style=dotted];
|
17 -> {18};
|
||||||
17 -> {18} [style=dotted];
|
18 -> {21};
|
||||||
18 -> {19} [style=dotted];
|
18 -> {19} [style=dotted];
|
||||||
|
19 -> {20} [style=dotted];
|
||||||
|
20 -> {21} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=red
|
color=red
|
||||||
20 [label="Enter function check" style="filled" fillcolor=red];
|
22 [label="Enter function check" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
21 [label="Enter block"];
|
23 [label="Enter block"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
22 [label="Enter when"];
|
24 [label="Enter when"];
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter when branch condition "];
|
|
||||||
24 [label="Access variable R|<local>/base|"];
|
|
||||||
25 [label="Type operator: (R|<local>/base| as? R|Sub|)"];
|
|
||||||
26 [label="Enter safe call"];
|
|
||||||
27 [label="Function call: $subj$.R|/isOk|()" style="filled" fillcolor=yellow];
|
|
||||||
28 [label="Exit safe call"];
|
|
||||||
29 [label="Const: Boolean(true)"];
|
|
||||||
30 [label="Equality operator =="];
|
|
||||||
31 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter when branch condition else"];
|
25 [label="Enter when branch condition "];
|
||||||
|
26 [label="Access variable R|<local>/base|"];
|
||||||
|
27 [label="Type operator: (R|<local>/base| as? R|Sub|)"];
|
||||||
|
28 [label="Enter safe call"];
|
||||||
|
29 [label="Function call: $subj$.R|/isOk|()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit safe call"];
|
||||||
|
31 [label="Const: Boolean(true)"];
|
||||||
|
32 [label="Equality operator =="];
|
||||||
33 [label="Exit when branch condition"];
|
33 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
34 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
35 [label="Enter block"];
|
34 [label="Enter when branch condition else"];
|
||||||
36 [label="Access variable R|<local>/base|"];
|
35 [label="Exit when branch condition"];
|
||||||
37 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
38 [label="Exit when branch result"];
|
36 [label="Enter when branch result"];
|
||||||
39 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
40 [label="Enter block"];
|
37 [label="Enter block"];
|
||||||
41 [label="Access variable R|<local>/base|"];
|
38 [label="Access variable R|<local>/base|"];
|
||||||
42 [label="Smart cast: R|<local>/base|"];
|
39 [label="Exit block"];
|
||||||
43 [label="Access variable R|/Sub.data|"];
|
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
45 [label="Exit when branch result"];
|
40 [label="Exit when branch result"];
|
||||||
46 [label="Exit when"];
|
41 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
42 [label="Enter block"];
|
||||||
|
43 [label="Access variable R|<local>/base|"];
|
||||||
|
44 [label="Smart cast: R|<local>/base|"];
|
||||||
|
45 [label="Access variable R|/Sub.data|"];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Exit when branch result"];
|
||||||
|
48 [label="Exit when"];
|
||||||
}
|
}
|
||||||
47 [label="Jump: ^check when () {
|
49 [label="Jump: ^check when () {
|
||||||
==((R|<local>/base| as? R|Sub|)?.{ $subj$.R|/isOk|() }, Boolean(true)) -> {
|
==((R|<local>/base| as? R|Sub|)?.{ $subj$.R|/isOk|() }, Boolean(true)) -> {
|
||||||
R|<local>/base|.R|/Sub.data|
|
R|<local>/base|.R|/Sub.data|
|
||||||
}
|
}
|
||||||
@@ -124,41 +131,41 @@ digraph functionCallBound_kt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
48 [label="Stub" style="filled" fillcolor=gray];
|
50 [label="Stub" style="filled" fillcolor=gray];
|
||||||
49 [label="Exit block" style="filled" fillcolor=gray];
|
51 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
50 [label="Exit function check" style="filled" fillcolor=red];
|
52 [label="Exit function check" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
20 -> {21};
|
|
||||||
21 -> {22};
|
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26 28};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28 30};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32 39};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34 41};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {46};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {48};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {50};
|
47 -> {48};
|
||||||
47 -> {48} [style=dotted];
|
48 -> {49};
|
||||||
48 -> {49} [style=dotted];
|
49 -> {52};
|
||||||
49 -> {50} [style=dotted];
|
49 -> {50} [style=dotted];
|
||||||
|
50 -> {51} [style=dotted];
|
||||||
|
51 -> {52} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+256
-249
@@ -5,74 +5,79 @@ digraph casts_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file casts.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file casts.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Access variable R|<local>/x|"];
|
|
||||||
3 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
|
subgraph cluster_1 {
|
||||||
4 [label="Access variable R|<local>/x|"];
|
color=red
|
||||||
5 [label="Smart cast: R|<local>/x|"];
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
6 [label="Access variable R|kotlin/String.length|"];
|
subgraph cluster_2 {
|
||||||
7 [label="Exit block"];
|
color=blue
|
||||||
}
|
3 [label="Enter block"];
|
||||||
8 [label="Exit function test_1" style="filled" fillcolor=red];
|
4 [label="Access variable R|<local>/x|"];
|
||||||
|
5 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
|
||||||
|
6 [label="Access variable R|<local>/x|"];
|
||||||
|
7 [label="Smart cast: R|<local>/x|"];
|
||||||
|
8 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
9 [label="Exit block"];
|
||||||
|
}
|
||||||
|
10 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
|
8 -> {9};
|
||||||
|
9 -> {10};
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
9 [label="Enter function test_2" style="filled" fillcolor=red];
|
11 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
12 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
11 [label="Enter when"];
|
13 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter when branch condition "];
|
|
||||||
13 [label="Access variable R|<local>/x|"];
|
|
||||||
14 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
|
||||||
15 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
16 [label="Synthetic else branch"];
|
|
||||||
17 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
18 [label="Enter block"];
|
14 [label="Enter when branch condition "];
|
||||||
19 [label="Access variable R|<local>/x|"];
|
15 [label="Access variable R|<local>/x|"];
|
||||||
20 [label="Smart cast: R|<local>/x|"];
|
16 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
||||||
21 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
17 [label="Exit when branch condition"];
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
23 [label="Exit when branch result"];
|
18 [label="Synthetic else branch"];
|
||||||
24 [label="Exit when"];
|
19 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter block"];
|
||||||
|
21 [label="Access variable R|<local>/x|"];
|
||||||
|
22 [label="Smart cast: R|<local>/x|"];
|
||||||
|
23 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit when branch result"];
|
||||||
|
26 [label="Exit when"];
|
||||||
}
|
}
|
||||||
25 [label="Access variable R|<local>/x|"];
|
27 [label="Access variable R|<local>/x|"];
|
||||||
26 [label="Smart cast: R|<local>/x|"];
|
28 [label="Smart cast: R|<local>/x|"];
|
||||||
27 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
29 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
28 [label="Exit block"];
|
30 [label="Exit block"];
|
||||||
}
|
}
|
||||||
29 [label="Exit function test_2" style="filled" fillcolor=red];
|
31 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16 17};
|
15 -> {16};
|
||||||
16 -> {24};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18 19};
|
||||||
18 -> {19};
|
18 -> {26};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
@@ -83,132 +88,132 @@ digraph casts_kt {
|
|||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
subgraph cluster_7 {
|
|
||||||
color=red
|
|
||||||
30 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
32 [label="Enter when"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter &&"];
|
|
||||||
35 [label="Access variable R|<local>/b|"];
|
|
||||||
36 [label="Exit left part of &&"];
|
|
||||||
37 [label="Enter right part of &&"];
|
|
||||||
38 [label="Access variable R|<local>/x|"];
|
|
||||||
39 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
|
||||||
40 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
41 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
42 [label="Synthetic else branch"];
|
|
||||||
43 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
44 [label="Enter block"];
|
|
||||||
45 [label="Access variable R|<local>/x|"];
|
|
||||||
46 [label="Smart cast: R|<local>/x|"];
|
|
||||||
47 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
48 [label="Exit block"];
|
|
||||||
}
|
|
||||||
49 [label="Exit when branch result"];
|
|
||||||
50 [label="Exit when"];
|
|
||||||
}
|
|
||||||
51 [label="Access variable R|<local>/x|"];
|
|
||||||
52 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
53 [label="Enter when"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
54 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
55 [label="Enter &&"];
|
|
||||||
56 [label="Access variable R|<local>/b|"];
|
|
||||||
57 [label="Exit left part of &&"];
|
|
||||||
58 [label="Enter right part of &&"];
|
|
||||||
59 [label="Access variable R|<local>/x|"];
|
|
||||||
60 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
|
||||||
61 [label="Const: Boolean(true)"];
|
|
||||||
62 [label="Equality operator =="];
|
|
||||||
63 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
64 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
65 [label="Synthetic else branch"];
|
|
||||||
66 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
67 [label="Enter block"];
|
|
||||||
68 [label="Access variable R|<local>/x|"];
|
|
||||||
69 [label="Smart cast: R|<local>/x|"];
|
|
||||||
70 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
71 [label="Exit block"];
|
|
||||||
}
|
|
||||||
72 [label="Exit when branch result"];
|
|
||||||
73 [label="Exit when"];
|
|
||||||
}
|
|
||||||
74 [label="Access variable R|<local>/x|"];
|
|
||||||
75 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
76 [label="Enter when"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
77 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
78 [label="Enter ||"];
|
|
||||||
79 [label="Access variable R|<local>/b|"];
|
|
||||||
80 [label="Exit left part of ||"];
|
|
||||||
81 [label="Enter right part of ||"];
|
|
||||||
82 [label="Access variable R|<local>/x|"];
|
|
||||||
83 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
|
||||||
84 [label="Exit ||"];
|
|
||||||
}
|
|
||||||
85 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
86 [label="Synthetic else branch"];
|
|
||||||
87 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
88 [label="Enter block"];
|
|
||||||
89 [label="Access variable R|<local>/x|"];
|
|
||||||
90 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
|
||||||
91 [label="Exit block"];
|
|
||||||
}
|
|
||||||
92 [label="Exit when branch result"];
|
|
||||||
93 [label="Exit when"];
|
|
||||||
}
|
|
||||||
94 [label="Access variable R|<local>/x|"];
|
|
||||||
95 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
|
||||||
96 [label="Exit block"];
|
|
||||||
}
|
|
||||||
97 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=red
|
||||||
|
32 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
34 [label="Enter when"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
35 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter &&"];
|
||||||
|
37 [label="Access variable R|<local>/b|"];
|
||||||
|
38 [label="Exit left part of &&"];
|
||||||
|
39 [label="Enter right part of &&"];
|
||||||
|
40 [label="Access variable R|<local>/x|"];
|
||||||
|
41 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
||||||
|
42 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
43 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
44 [label="Synthetic else branch"];
|
||||||
|
45 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
46 [label="Enter block"];
|
||||||
|
47 [label="Access variable R|<local>/x|"];
|
||||||
|
48 [label="Smart cast: R|<local>/x|"];
|
||||||
|
49 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
50 [label="Exit block"];
|
||||||
|
}
|
||||||
|
51 [label="Exit when branch result"];
|
||||||
|
52 [label="Exit when"];
|
||||||
|
}
|
||||||
|
53 [label="Access variable R|<local>/x|"];
|
||||||
|
54 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
55 [label="Enter when"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
56 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
57 [label="Enter &&"];
|
||||||
|
58 [label="Access variable R|<local>/b|"];
|
||||||
|
59 [label="Exit left part of &&"];
|
||||||
|
60 [label="Enter right part of &&"];
|
||||||
|
61 [label="Access variable R|<local>/x|"];
|
||||||
|
62 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
||||||
|
63 [label="Const: Boolean(true)"];
|
||||||
|
64 [label="Equality operator =="];
|
||||||
|
65 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
66 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
67 [label="Synthetic else branch"];
|
||||||
|
68 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
69 [label="Enter block"];
|
||||||
|
70 [label="Access variable R|<local>/x|"];
|
||||||
|
71 [label="Smart cast: R|<local>/x|"];
|
||||||
|
72 [label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
73 [label="Exit block"];
|
||||||
|
}
|
||||||
|
74 [label="Exit when branch result"];
|
||||||
|
75 [label="Exit when"];
|
||||||
|
}
|
||||||
|
76 [label="Access variable R|<local>/x|"];
|
||||||
|
77 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
78 [label="Enter when"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
79 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
80 [label="Enter ||"];
|
||||||
|
81 [label="Access variable R|<local>/b|"];
|
||||||
|
82 [label="Exit left part of ||"];
|
||||||
|
83 [label="Enter right part of ||"];
|
||||||
|
84 [label="Access variable R|<local>/x|"];
|
||||||
|
85 [label="Type operator: (R|<local>/x| as R|kotlin/Boolean|)"];
|
||||||
|
86 [label="Exit ||"];
|
||||||
|
}
|
||||||
|
87 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
88 [label="Synthetic else branch"];
|
||||||
|
89 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
90 [label="Enter block"];
|
||||||
|
91 [label="Access variable R|<local>/x|"];
|
||||||
|
92 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
|
93 [label="Exit block"];
|
||||||
|
}
|
||||||
|
94 [label="Exit when branch result"];
|
||||||
|
95 [label="Exit when"];
|
||||||
|
}
|
||||||
|
96 [label="Access variable R|<local>/x|"];
|
||||||
|
97 [label="Function call: R|<local>/x|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
|
98 [label="Exit block"];
|
||||||
|
}
|
||||||
|
99 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37 40};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39 42};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42 43};
|
41 -> {42};
|
||||||
42 -> {50};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44 45};
|
||||||
44 -> {45};
|
44 -> {52};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
@@ -221,17 +226,17 @@ digraph casts_kt {
|
|||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58 63};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60 65};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65 66};
|
64 -> {65};
|
||||||
65 -> {73};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67 68};
|
||||||
67 -> {68};
|
67 -> {75};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
@@ -244,15 +249,15 @@ digraph casts_kt {
|
|||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81 84};
|
80 -> {81};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83 86};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86 87};
|
85 -> {86};
|
||||||
86 -> {93};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88 89};
|
||||||
88 -> {89};
|
88 -> {95};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
@@ -261,116 +266,116 @@ digraph casts_kt {
|
|||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
|
97 -> {98};
|
||||||
|
98 -> {99};
|
||||||
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_22 {
|
||||||
color=red
|
color=red
|
||||||
98 [label="Enter function test_4" style="filled" fillcolor=red];
|
100 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
99 [label="Enter block"];
|
101 [label="Enter block"];
|
||||||
subgraph cluster_23 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
100 [label="Enter when"];
|
102 [label="Enter when"];
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
101 [label="Enter when branch condition "];
|
|
||||||
102 [label="Access variable R|<local>/b|"];
|
|
||||||
103 [label="Type operator: (R|<local>/b| as? R|kotlin/Boolean|)"];
|
|
||||||
104 [label="Const: Null(null)"];
|
|
||||||
105 [label="Equality operator !="];
|
|
||||||
106 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_25 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
107 [label="Enter when branch condition else"];
|
103 [label="Enter when branch condition "];
|
||||||
|
104 [label="Access variable R|<local>/b|"];
|
||||||
|
105 [label="Type operator: (R|<local>/b| as? R|kotlin/Boolean|)"];
|
||||||
|
106 [label="Const: Null(null)"];
|
||||||
|
107 [label="Equality operator !="];
|
||||||
108 [label="Exit when branch condition"];
|
108 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
109 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_26 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
110 [label="Enter block"];
|
109 [label="Enter when branch condition else"];
|
||||||
111 [label="Access variable R|<local>/b|"];
|
110 [label="Exit when branch condition"];
|
||||||
112 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
|
||||||
113 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
114 [label="Exit when branch result"];
|
111 [label="Enter when branch result"];
|
||||||
115 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
116 [label="Enter block"];
|
112 [label="Enter block"];
|
||||||
117 [label="Access variable R|<local>/b|"];
|
113 [label="Access variable R|<local>/b|"];
|
||||||
118 [label="Smart cast: R|<local>/b|"];
|
114 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
119 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
115 [label="Exit block"];
|
||||||
120 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
121 [label="Exit when branch result"];
|
116 [label="Exit when branch result"];
|
||||||
122 [label="Exit when"];
|
117 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_28 {
|
||||||
123 [label="Access variable R|<local>/b|"];
|
|
||||||
124 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
125 [label="Enter when"];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
color=blue
|
||||||
126 [label="Enter when branch condition "];
|
118 [label="Enter block"];
|
||||||
127 [label="Access variable R|<local>/b|"];
|
119 [label="Access variable R|<local>/b|"];
|
||||||
128 [label="Type operator: (R|<local>/b| as? R|kotlin/Boolean|)"];
|
120 [label="Smart cast: R|<local>/b|"];
|
||||||
129 [label="Const: Null(null)"];
|
121 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
130 [label="Equality operator =="];
|
122 [label="Exit block"];
|
||||||
131 [label="Exit when branch condition"];
|
|
||||||
}
|
}
|
||||||
|
123 [label="Exit when branch result"];
|
||||||
|
124 [label="Exit when"];
|
||||||
|
}
|
||||||
|
125 [label="Access variable R|<local>/b|"];
|
||||||
|
126 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
127 [label="Enter when"];
|
||||||
subgraph cluster_30 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
132 [label="Enter when branch condition else"];
|
128 [label="Enter when branch condition "];
|
||||||
|
129 [label="Access variable R|<local>/b|"];
|
||||||
|
130 [label="Type operator: (R|<local>/b| as? R|kotlin/Boolean|)"];
|
||||||
|
131 [label="Const: Null(null)"];
|
||||||
|
132 [label="Equality operator =="];
|
||||||
133 [label="Exit when branch condition"];
|
133 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
134 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_31 {
|
subgraph cluster_31 {
|
||||||
color=blue
|
color=blue
|
||||||
135 [label="Enter block"];
|
134 [label="Enter when branch condition else"];
|
||||||
136 [label="Access variable R|<local>/b|"];
|
135 [label="Exit when branch condition"];
|
||||||
137 [label="Smart cast: R|<local>/b|"];
|
|
||||||
138 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
|
||||||
139 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
140 [label="Exit when branch result"];
|
136 [label="Enter when branch result"];
|
||||||
141 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_32 {
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
142 [label="Enter block"];
|
137 [label="Enter block"];
|
||||||
143 [label="Access variable R|<local>/b|"];
|
138 [label="Access variable R|<local>/b|"];
|
||||||
144 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
139 [label="Smart cast: R|<local>/b|"];
|
||||||
145 [label="Exit block"];
|
140 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||||
|
141 [label="Exit block"];
|
||||||
}
|
}
|
||||||
146 [label="Exit when branch result"];
|
142 [label="Exit when branch result"];
|
||||||
147 [label="Exit when"];
|
143 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=blue
|
||||||
|
144 [label="Enter block"];
|
||||||
|
145 [label="Access variable R|<local>/b|"];
|
||||||
|
146 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
|
147 [label="Exit block"];
|
||||||
|
}
|
||||||
|
148 [label="Exit when branch result"];
|
||||||
|
149 [label="Exit when"];
|
||||||
}
|
}
|
||||||
148 [label="Access variable R|<local>/b|"];
|
150 [label="Access variable R|<local>/b|"];
|
||||||
149 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
151 [label="Function call: R|<local>/b|.<Unresolved name: not>#()" style="filled" fillcolor=yellow];
|
||||||
150 [label="Exit block"];
|
152 [label="Exit block"];
|
||||||
}
|
}
|
||||||
151 [label="Exit function test_4" style="filled" fillcolor=red];
|
153 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
98 -> {99};
|
|
||||||
99 -> {100};
|
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {107 115};
|
106 -> {107};
|
||||||
107 -> {108};
|
107 -> {108};
|
||||||
108 -> {109};
|
108 -> {109 117};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {122};
|
114 -> {115};
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117};
|
116 -> {124};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120};
|
||||||
@@ -385,18 +390,18 @@ digraph casts_kt {
|
|||||||
128 -> {129};
|
128 -> {129};
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132 141};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134 143};
|
||||||
134 -> {135};
|
134 -> {135};
|
||||||
135 -> {136};
|
135 -> {136};
|
||||||
136 -> {137};
|
136 -> {137};
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
138 -> {139};
|
138 -> {139};
|
||||||
139 -> {140};
|
139 -> {140};
|
||||||
140 -> {147};
|
140 -> {141};
|
||||||
141 -> {142};
|
141 -> {142};
|
||||||
142 -> {143};
|
142 -> {149};
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {146};
|
145 -> {146};
|
||||||
@@ -405,5 +410,7 @@ digraph casts_kt {
|
|||||||
148 -> {149};
|
148 -> {149};
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
150 -> {151};
|
150 -> {151};
|
||||||
|
151 -> {152};
|
||||||
|
152 -> {153};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+142
-135
@@ -5,78 +5,83 @@ digraph elvis_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file elvis.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file elvis.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test_1" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
5 [label="Enter block"];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
6 [label="Enter when"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
7 [label="Enter when branch condition "];
|
|
||||||
8 [label="Access variable R|<local>/x|"];
|
|
||||||
9 [label="Enter safe call"];
|
|
||||||
10 [label="Access variable R|/A.b|"];
|
|
||||||
11 [label="Exit safe call"];
|
|
||||||
12 [label="Exit lhs of ?:"];
|
|
||||||
13 [label="Enter rhs of ?:"];
|
|
||||||
14 [label="Jump: ^test_1 Unit"];
|
|
||||||
15 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
16 [label="Lhs of ?: is not null"];
|
|
||||||
17 [label="Exit ?:"];
|
|
||||||
18 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
19 [label="Synthetic else branch"];
|
|
||||||
20 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
21 [label="Enter block"];
|
|
||||||
22 [label="Access variable R|<local>/x|"];
|
|
||||||
23 [label="Smart cast: R|<local>/x|"];
|
|
||||||
24 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
25 [label="Exit block"];
|
|
||||||
}
|
|
||||||
26 [label="Exit when branch result"];
|
|
||||||
27 [label="Exit when"];
|
|
||||||
}
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter when"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter when branch condition "];
|
||||||
|
10 [label="Access variable R|<local>/x|"];
|
||||||
|
11 [label="Enter safe call"];
|
||||||
|
12 [label="Access variable R|/A.b|"];
|
||||||
|
13 [label="Exit safe call"];
|
||||||
|
14 [label="Exit lhs of ?:"];
|
||||||
|
15 [label="Enter rhs of ?:"];
|
||||||
|
16 [label="Jump: ^test_1 Unit"];
|
||||||
|
17 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
18 [label="Lhs of ?: is not null"];
|
||||||
|
19 [label="Exit ?:"];
|
||||||
|
20 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
21 [label="Synthetic else branch"];
|
||||||
|
22 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
23 [label="Enter block"];
|
||||||
|
24 [label="Access variable R|<local>/x|"];
|
||||||
|
25 [label="Smart cast: R|<local>/x|"];
|
||||||
|
26 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Exit block"];
|
||||||
|
}
|
||||||
|
28 [label="Exit when branch result"];
|
||||||
|
29 [label="Exit when"];
|
||||||
|
}
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9 13};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11 15};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13 16};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {29};
|
14 -> {15 18};
|
||||||
14 -> {15} [style=dotted];
|
15 -> {16};
|
||||||
15 -> {17} [style=dotted];
|
16 -> {31};
|
||||||
16 -> {17};
|
16 -> {17} [style=dotted];
|
||||||
17 -> {18};
|
17 -> {19} [style=dotted];
|
||||||
18 -> {19 20};
|
18 -> {19};
|
||||||
19 -> {27};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21 22};
|
||||||
21 -> {22};
|
21 -> {29};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
@@ -84,116 +89,118 @@ digraph elvis_kt {
|
|||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=red
|
color=red
|
||||||
30 [label="Enter function test2" style="filled" fillcolor=red];
|
32 [label="Enter function test2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
31 [label="Enter block"];
|
33 [label="Enter block"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter when"];
|
34 [label="Enter when"];
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter when branch condition "];
|
|
||||||
34 [label="Access variable R|<local>/b|"];
|
|
||||||
35 [label="Type operator: (R|<local>/b| !is R|kotlin/String|)"];
|
|
||||||
36 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
37 [label="Synthetic else branch"];
|
|
||||||
38 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
39 [label="Enter block"];
|
35 [label="Enter when branch condition "];
|
||||||
40 [label="Const: String()"];
|
36 [label="Access variable R|<local>/b|"];
|
||||||
41 [label="Jump: ^test2 String()"];
|
37 [label="Type operator: (R|<local>/b| !is R|kotlin/String|)"];
|
||||||
42 [label="Stub" style="filled" fillcolor=gray];
|
38 [label="Exit when branch condition"];
|
||||||
43 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
44 [label="Exit when branch result" style="filled" fillcolor=gray];
|
39 [label="Synthetic else branch"];
|
||||||
45 [label="Exit when"];
|
40 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_12 {
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
46 [label="Enter when"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
color=blue
|
||||||
47 [label="Enter when branch condition "];
|
41 [label="Enter block"];
|
||||||
48 [label="Access variable R|<local>/a|"];
|
42 [label="Const: String()"];
|
||||||
49 [label="Type operator: (R|<local>/a| !is R|kotlin/String?|)"];
|
43 [label="Jump: ^test2 String()"];
|
||||||
50 [label="Exit when branch condition"];
|
44 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
45 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
51 [label="Synthetic else branch"];
|
46 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
52 [label="Enter when branch result"];
|
47 [label="Exit when"];
|
||||||
|
}
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
48 [label="Enter when"];
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
53 [label="Enter block"];
|
49 [label="Enter when branch condition "];
|
||||||
54 [label="Const: String()"];
|
50 [label="Access variable R|<local>/a|"];
|
||||||
55 [label="Jump: ^test2 String()"];
|
51 [label="Type operator: (R|<local>/a| !is R|kotlin/String?|)"];
|
||||||
56 [label="Stub" style="filled" fillcolor=gray];
|
52 [label="Exit when branch condition"];
|
||||||
57 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
58 [label="Exit when branch result" style="filled" fillcolor=gray];
|
53 [label="Synthetic else branch"];
|
||||||
59 [label="Exit when"];
|
54 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
55 [label="Enter block"];
|
||||||
|
56 [label="Const: String()"];
|
||||||
|
57 [label="Jump: ^test2 String()"];
|
||||||
|
58 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
59 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
60 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
61 [label="Exit when"];
|
||||||
}
|
}
|
||||||
60 [label="Access variable R|<local>/a|"];
|
62 [label="Access variable R|<local>/a|"];
|
||||||
61 [label="Smart cast: R|<local>/a|"];
|
63 [label="Smart cast: R|<local>/a|"];
|
||||||
62 [label="Exit lhs of ?:"];
|
64 [label="Exit lhs of ?:"];
|
||||||
63 [label="Enter rhs of ?:"];
|
65 [label="Enter rhs of ?:"];
|
||||||
64 [label="Access variable R|<local>/b|"];
|
66 [label="Access variable R|<local>/b|"];
|
||||||
65 [label="Smart cast: R|<local>/b|"];
|
67 [label="Smart cast: R|<local>/b|"];
|
||||||
66 [label="Lhs of ?: is not null"];
|
68 [label="Lhs of ?: is not null"];
|
||||||
67 [label="Exit ?:"];
|
69 [label="Exit ?:"];
|
||||||
68 [label="Jump: ^test2 R|<local>/a| ?: R|<local>/b|"];
|
70 [label="Jump: ^test2 R|<local>/a| ?: R|<local>/b|"];
|
||||||
69 [label="Stub" style="filled" fillcolor=gray];
|
71 [label="Stub" style="filled" fillcolor=gray];
|
||||||
70 [label="Exit block" style="filled" fillcolor=gray];
|
72 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
71 [label="Exit function test2" style="filled" fillcolor=red];
|
73 [label="Exit function test2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
30 -> {31};
|
|
||||||
31 -> {32};
|
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37 38};
|
36 -> {37};
|
||||||
37 -> {45};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39 40};
|
||||||
39 -> {40};
|
39 -> {47};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {71};
|
41 -> {42};
|
||||||
41 -> {42} [style=dotted];
|
42 -> {43};
|
||||||
42 -> {43} [style=dotted];
|
43 -> {73};
|
||||||
43 -> {44} [style=dotted];
|
43 -> {44} [style=dotted];
|
||||||
44 -> {45} [style=dotted];
|
44 -> {45} [style=dotted];
|
||||||
45 -> {46};
|
45 -> {46} [style=dotted];
|
||||||
46 -> {47};
|
46 -> {47} [style=dotted];
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51 52};
|
50 -> {51};
|
||||||
51 -> {59};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53 54};
|
||||||
53 -> {54};
|
53 -> {61};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {71};
|
55 -> {56};
|
||||||
55 -> {56} [style=dotted];
|
56 -> {57};
|
||||||
56 -> {57} [style=dotted];
|
57 -> {73};
|
||||||
57 -> {58} [style=dotted];
|
57 -> {58} [style=dotted];
|
||||||
58 -> {59} [style=dotted];
|
58 -> {59} [style=dotted];
|
||||||
59 -> {60};
|
59 -> {60} [style=dotted];
|
||||||
60 -> {61};
|
60 -> {61} [style=dotted];
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63 66};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65 68};
|
||||||
65 -> {67};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {69};
|
||||||
68 -> {71};
|
68 -> {69};
|
||||||
68 -> {69} [style=dotted];
|
69 -> {70};
|
||||||
69 -> {70} [style=dotted];
|
70 -> {73};
|
||||||
70 -> {71} [style=dotted];
|
70 -> {71} [style=dotted];
|
||||||
|
71 -> {72} [style=dotted];
|
||||||
|
72 -> {73} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+297
-290
@@ -5,65 +5,70 @@ digraph returns_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_0" style="filled" fillcolor=red];
|
0 [label="Enter file returns.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file returns.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test_0" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Enter when branch condition "];
|
|
||||||
4 [label="Access variable R|<local>/x|"];
|
|
||||||
5 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
6 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
7 [label="Enter when branch condition else"];
|
5 [label="Enter when branch condition "];
|
||||||
|
6 [label="Access variable R|<local>/x|"];
|
||||||
|
7 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
8 [label="Exit when branch condition"];
|
8 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
9 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
9 [label="Enter when branch condition else"];
|
||||||
11 [label="Exit block"];
|
10 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
12 [label="Exit when branch result"];
|
11 [label="Enter when branch result"];
|
||||||
13 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter block"];
|
12 [label="Enter block"];
|
||||||
15 [label="Access variable R|<local>/x|"];
|
13 [label="Exit block"];
|
||||||
16 [label="Smart cast: R|<local>/x|"];
|
|
||||||
17 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
18 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
19 [label="Exit when branch result"];
|
14 [label="Exit when branch result"];
|
||||||
20 [label="Exit when"];
|
15 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
16 [label="Enter block"];
|
||||||
|
17 [label="Access variable R|<local>/x|"];
|
||||||
|
18 [label="Smart cast: R|<local>/x|"];
|
||||||
|
19 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
20 [label="Exit block"];
|
||||||
|
}
|
||||||
|
21 [label="Exit when branch result"];
|
||||||
|
22 [label="Exit when"];
|
||||||
}
|
}
|
||||||
21 [label="Access variable R|<local>/x|"];
|
23 [label="Access variable R|<local>/x|"];
|
||||||
22 [label="Access variable <Unresolved name: length>#"];
|
24 [label="Access variable <Unresolved name: length>#"];
|
||||||
23 [label="Exit block"];
|
25 [label="Exit block"];
|
||||||
}
|
}
|
||||||
24 [label="Exit function test_0" style="filled" fillcolor=red];
|
26 [label="Exit function test_0" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7 13};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9 15};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {20};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {22};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
@@ -73,74 +78,74 @@ digraph returns_kt {
|
|||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
|
24 -> {25};
|
||||||
|
25 -> {26};
|
||||||
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=red
|
color=red
|
||||||
25 [label="Enter function test_1" style="filled" fillcolor=red];
|
27 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
26 [label="Enter block"];
|
28 [label="Enter block"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter when"];
|
29 [label="Enter when"];
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
28 [label="Enter when branch condition "];
|
|
||||||
29 [label="Access variable R|<local>/x|"];
|
|
||||||
30 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
31 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter when branch condition else"];
|
30 [label="Enter when branch condition "];
|
||||||
|
31 [label="Access variable R|<local>/x|"];
|
||||||
|
32 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
33 [label="Exit when branch condition"];
|
33 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
34 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
35 [label="Enter block"];
|
34 [label="Enter when branch condition else"];
|
||||||
36 [label="Jump: ^test_1 Unit"];
|
35 [label="Exit when branch condition"];
|
||||||
37 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
38 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
39 [label="Exit when branch result" style="filled" fillcolor=gray];
|
36 [label="Enter when branch result"];
|
||||||
40 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
41 [label="Enter block"];
|
37 [label="Enter block"];
|
||||||
42 [label="Access variable R|<local>/x|"];
|
38 [label="Jump: ^test_1 Unit"];
|
||||||
43 [label="Smart cast: R|<local>/x|"];
|
39 [label="Stub" style="filled" fillcolor=gray];
|
||||||
44 [label="Access variable R|kotlin/String.length|"];
|
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
45 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
46 [label="Exit when branch result"];
|
41 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
47 [label="Exit when"];
|
42 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter block"];
|
||||||
|
44 [label="Access variable R|<local>/x|"];
|
||||||
|
45 [label="Smart cast: R|<local>/x|"];
|
||||||
|
46 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
47 [label="Exit block"];
|
||||||
|
}
|
||||||
|
48 [label="Exit when branch result"];
|
||||||
|
49 [label="Exit when"];
|
||||||
}
|
}
|
||||||
48 [label="Access variable R|<local>/x|"];
|
50 [label="Access variable R|<local>/x|"];
|
||||||
49 [label="Smart cast: R|<local>/x|"];
|
51 [label="Smart cast: R|<local>/x|"];
|
||||||
50 [label="Access variable R|kotlin/String.length|"];
|
52 [label="Access variable R|kotlin/String.length|"];
|
||||||
51 [label="Exit block"];
|
53 [label="Exit block"];
|
||||||
}
|
}
|
||||||
52 [label="Exit function test_1" style="filled" fillcolor=red];
|
54 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
25 -> {26};
|
|
||||||
26 -> {27};
|
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32 40};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34 42};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {52};
|
36 -> {37};
|
||||||
36 -> {37} [style=dotted];
|
37 -> {38};
|
||||||
37 -> {38} [style=dotted];
|
38 -> {54};
|
||||||
38 -> {39} [style=dotted];
|
38 -> {39} [style=dotted];
|
||||||
39 -> {47} [style=dotted];
|
39 -> {40} [style=dotted];
|
||||||
40 -> {41};
|
40 -> {41} [style=dotted];
|
||||||
41 -> {42};
|
41 -> {49} [style=dotted];
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
@@ -151,150 +156,150 @@ digraph returns_kt {
|
|||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
|
52 -> {53};
|
||||||
subgraph cluster_14 {
|
53 -> {54};
|
||||||
color=red
|
|
||||||
53 [label="Enter class A" style="filled" fillcolor=red];
|
|
||||||
54 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
53 -> {54} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=red
|
color=red
|
||||||
55 [label="Enter function foo" style="filled" fillcolor=red];
|
55 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
56 [label="Exit function foo" style="filled" fillcolor=red];
|
56 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
55 -> {56};
|
55 -> {56} [color=green];
|
||||||
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=red
|
color=red
|
||||||
57 [label="Enter class B" style="filled" fillcolor=red];
|
57 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
58 [label="Exit class B" style="filled" fillcolor=red];
|
58 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
57 -> {58} [color=green];
|
57 -> {58};
|
||||||
|
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=red
|
color=red
|
||||||
59 [label="Enter function bar" style="filled" fillcolor=red];
|
59 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
60 [label="Exit function bar" style="filled" fillcolor=red];
|
60 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
59 -> {60};
|
59 -> {60} [color=green];
|
||||||
|
|
||||||
subgraph cluster_18 {
|
subgraph cluster_18 {
|
||||||
color=red
|
color=red
|
||||||
61 [label="Enter class C" style="filled" fillcolor=red];
|
61 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
62 [label="Exit class C" style="filled" fillcolor=red];
|
62 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
61 -> {62} [color=green];
|
61 -> {62};
|
||||||
|
|
||||||
subgraph cluster_19 {
|
subgraph cluster_19 {
|
||||||
color=red
|
color=red
|
||||||
63 [label="Enter function baz" style="filled" fillcolor=red];
|
63 [label="Enter class C" style="filled" fillcolor=red];
|
||||||
64 [label="Exit function baz" style="filled" fillcolor=red];
|
64 [label="Exit class C" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
63 -> {64};
|
63 -> {64} [color=green];
|
||||||
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=red
|
color=red
|
||||||
65 [label="Enter function test_2" style="filled" fillcolor=red];
|
65 [label="Enter function baz" style="filled" fillcolor=red];
|
||||||
subgraph cluster_21 {
|
66 [label="Exit function baz" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
65 -> {66};
|
||||||
|
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=red
|
||||||
|
67 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
66 [label="Enter block"];
|
68 [label="Enter block"];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
67 [label="Enter when"];
|
69 [label="Enter when"];
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
68 [label="Enter when branch condition "];
|
|
||||||
69 [label="Access variable R|<local>/x|"];
|
|
||||||
70 [label="Type operator: (R|<local>/x| is R|B|)"];
|
|
||||||
71 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_24 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
72 [label="Enter when branch condition "];
|
70 [label="Enter when branch condition "];
|
||||||
73 [label="Access variable R|<local>/x|"];
|
71 [label="Access variable R|<local>/x|"];
|
||||||
74 [label="Type operator: (R|<local>/x| is R|C|)"];
|
72 [label="Type operator: (R|<local>/x| is R|B|)"];
|
||||||
75 [label="Exit when branch condition"];
|
73 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_25 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
76 [label="Enter when branch condition else"];
|
74 [label="Enter when branch condition "];
|
||||||
|
75 [label="Access variable R|<local>/x|"];
|
||||||
|
76 [label="Type operator: (R|<local>/x| is R|C|)"];
|
||||||
77 [label="Exit when branch condition"];
|
77 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
78 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_26 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
79 [label="Enter block"];
|
78 [label="Enter when branch condition else"];
|
||||||
80 [label="Jump: ^test_2 Unit"];
|
79 [label="Exit when branch condition"];
|
||||||
81 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
82 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
83 [label="Exit when branch result" style="filled" fillcolor=gray];
|
80 [label="Enter when branch result"];
|
||||||
84 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
85 [label="Enter block"];
|
81 [label="Enter block"];
|
||||||
86 [label="Access variable R|<local>/x|"];
|
82 [label="Jump: ^test_2 Unit"];
|
||||||
87 [label="Smart cast: R|<local>/x|"];
|
83 [label="Stub" style="filled" fillcolor=gray];
|
||||||
88 [label="Function call: R|<local>/x|.R|/C.baz|()" style="filled" fillcolor=yellow];
|
84 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
89 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
90 [label="Exit when branch result"];
|
85 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
91 [label="Enter when branch result"];
|
86 [label="Enter when branch result"];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
92 [label="Enter block"];
|
87 [label="Enter block"];
|
||||||
93 [label="Access variable R|<local>/x|"];
|
88 [label="Access variable R|<local>/x|"];
|
||||||
94 [label="Smart cast: R|<local>/x|"];
|
89 [label="Smart cast: R|<local>/x|"];
|
||||||
95 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
90 [label="Function call: R|<local>/x|.R|/C.baz|()" style="filled" fillcolor=yellow];
|
||||||
96 [label="Exit block"];
|
91 [label="Exit block"];
|
||||||
}
|
}
|
||||||
97 [label="Exit when branch result"];
|
92 [label="Exit when branch result"];
|
||||||
98 [label="Exit when"];
|
93 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
94 [label="Enter block"];
|
||||||
|
95 [label="Access variable R|<local>/x|"];
|
||||||
|
96 [label="Smart cast: R|<local>/x|"];
|
||||||
|
97 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
98 [label="Exit block"];
|
||||||
|
}
|
||||||
|
99 [label="Exit when branch result"];
|
||||||
|
100 [label="Exit when"];
|
||||||
}
|
}
|
||||||
99 [label="Access variable R|<local>/x|"];
|
101 [label="Access variable R|<local>/x|"];
|
||||||
100 [label="Smart cast: R|<local>/x|"];
|
102 [label="Smart cast: R|<local>/x|"];
|
||||||
101 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
103 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
102 [label="Access variable R|<local>/x|"];
|
104 [label="Access variable R|<local>/x|"];
|
||||||
103 [label="Smart cast: R|<local>/x|"];
|
105 [label="Smart cast: R|<local>/x|"];
|
||||||
104 [label="Function call: R|<local>/x|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
106 [label="Function call: R|<local>/x|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
105 [label="Access variable R|<local>/x|"];
|
107 [label="Access variable R|<local>/x|"];
|
||||||
106 [label="Smart cast: R|<local>/x|"];
|
108 [label="Smart cast: R|<local>/x|"];
|
||||||
107 [label="Function call: R|<local>/x|.<Unresolved name: baz>#()" style="filled" fillcolor=yellow];
|
109 [label="Function call: R|<local>/x|.<Unresolved name: baz>#()" style="filled" fillcolor=yellow];
|
||||||
108 [label="Exit block"];
|
110 [label="Exit block"];
|
||||||
}
|
}
|
||||||
109 [label="Exit function test_2" style="filled" fillcolor=red];
|
111 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
65 -> {66};
|
|
||||||
66 -> {67};
|
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72 91};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74 93};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76 84};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78 86};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {109};
|
80 -> {81};
|
||||||
80 -> {81} [style=dotted];
|
81 -> {82};
|
||||||
81 -> {82} [style=dotted];
|
82 -> {111};
|
||||||
82 -> {83} [style=dotted];
|
82 -> {83} [style=dotted];
|
||||||
83 -> {98} [style=dotted];
|
83 -> {84} [style=dotted];
|
||||||
84 -> {85};
|
84 -> {85} [style=dotted];
|
||||||
85 -> {86};
|
85 -> {100} [style=dotted];
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {98};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {100};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
@@ -311,84 +316,84 @@ digraph returns_kt {
|
|||||||
106 -> {107};
|
106 -> {107};
|
||||||
107 -> {108};
|
107 -> {108};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
|
109 -> {110};
|
||||||
|
110 -> {111};
|
||||||
|
|
||||||
subgraph cluster_29 {
|
subgraph cluster_30 {
|
||||||
color=red
|
color=red
|
||||||
110 [label="Enter function test_3" style="filled" fillcolor=red];
|
112 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_30 {
|
subgraph cluster_31 {
|
||||||
color=blue
|
color=blue
|
||||||
111 [label="Enter block"];
|
113 [label="Enter block"];
|
||||||
subgraph cluster_31 {
|
subgraph cluster_32 {
|
||||||
color=blue
|
color=blue
|
||||||
112 [label="Enter when"];
|
114 [label="Enter when"];
|
||||||
subgraph cluster_32 {
|
|
||||||
color=blue
|
|
||||||
113 [label="Enter when branch condition "];
|
|
||||||
114 [label="Access variable R|<local>/x|"];
|
|
||||||
115 [label="Type operator: (R|<local>/x| is R|B|)"];
|
|
||||||
116 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_33 {
|
subgraph cluster_33 {
|
||||||
color=blue
|
color=blue
|
||||||
117 [label="Enter when branch condition "];
|
115 [label="Enter when branch condition "];
|
||||||
118 [label="Access variable R|<local>/x|"];
|
116 [label="Access variable R|<local>/x|"];
|
||||||
119 [label="Type operator: (R|<local>/x| is R|C|)"];
|
117 [label="Type operator: (R|<local>/x| is R|B|)"];
|
||||||
120 [label="Exit when branch condition"];
|
118 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
121 [label="Synthetic else branch"];
|
|
||||||
122 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_34 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
123 [label="Enter block"];
|
119 [label="Enter when branch condition "];
|
||||||
124 [label="Access variable R|<local>/x|"];
|
120 [label="Access variable R|<local>/x|"];
|
||||||
125 [label="Smart cast: R|<local>/x|"];
|
121 [label="Type operator: (R|<local>/x| is R|C|)"];
|
||||||
126 [label="Function call: R|<local>/x|.R|/C.baz|()" style="filled" fillcolor=yellow];
|
122 [label="Exit when branch condition"];
|
||||||
127 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
128 [label="Exit when branch result"];
|
123 [label="Synthetic else branch"];
|
||||||
129 [label="Enter when branch result"];
|
124 [label="Enter when branch result"];
|
||||||
subgraph cluster_35 {
|
subgraph cluster_35 {
|
||||||
color=blue
|
color=blue
|
||||||
130 [label="Enter block"];
|
125 [label="Enter block"];
|
||||||
131 [label="Access variable R|<local>/x|"];
|
126 [label="Access variable R|<local>/x|"];
|
||||||
132 [label="Smart cast: R|<local>/x|"];
|
127 [label="Smart cast: R|<local>/x|"];
|
||||||
133 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
128 [label="Function call: R|<local>/x|.R|/C.baz|()" style="filled" fillcolor=yellow];
|
||||||
134 [label="Exit block"];
|
129 [label="Exit block"];
|
||||||
}
|
}
|
||||||
135 [label="Exit when branch result"];
|
130 [label="Exit when branch result"];
|
||||||
136 [label="Exit when"];
|
131 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_36 {
|
||||||
|
color=blue
|
||||||
|
132 [label="Enter block"];
|
||||||
|
133 [label="Access variable R|<local>/x|"];
|
||||||
|
134 [label="Smart cast: R|<local>/x|"];
|
||||||
|
135 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
136 [label="Exit block"];
|
||||||
|
}
|
||||||
|
137 [label="Exit when branch result"];
|
||||||
|
138 [label="Exit when"];
|
||||||
}
|
}
|
||||||
137 [label="Access variable R|<local>/x|"];
|
|
||||||
138 [label="Function call: R|<local>/x|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
|
||||||
139 [label="Access variable R|<local>/x|"];
|
139 [label="Access variable R|<local>/x|"];
|
||||||
140 [label="Function call: R|<local>/x|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
140 [label="Function call: R|<local>/x|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
141 [label="Access variable R|<local>/x|"];
|
141 [label="Access variable R|<local>/x|"];
|
||||||
142 [label="Function call: R|<local>/x|.<Unresolved name: baz>#()" style="filled" fillcolor=yellow];
|
142 [label="Function call: R|<local>/x|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
143 [label="Exit block"];
|
143 [label="Access variable R|<local>/x|"];
|
||||||
|
144 [label="Function call: R|<local>/x|.<Unresolved name: baz>#()" style="filled" fillcolor=yellow];
|
||||||
|
145 [label="Exit block"];
|
||||||
}
|
}
|
||||||
144 [label="Exit function test_3" style="filled" fillcolor=red];
|
146 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
110 -> {111};
|
|
||||||
111 -> {112};
|
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117 129};
|
116 -> {117};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119 131};
|
||||||
119 -> {120};
|
119 -> {120};
|
||||||
120 -> {121 122};
|
120 -> {121};
|
||||||
121 -> {136};
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123 124};
|
||||||
123 -> {124};
|
123 -> {138};
|
||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {136};
|
128 -> {129};
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
130 -> {131};
|
130 -> {138};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
@@ -402,116 +407,118 @@ digraph returns_kt {
|
|||||||
141 -> {142};
|
141 -> {142};
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
|
144 -> {145};
|
||||||
subgraph cluster_36 {
|
|
||||||
color=red
|
|
||||||
145 [label="Enter function runHigherOrder" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_37 {
|
|
||||||
color=blue
|
|
||||||
146 [label="Enter block"];
|
|
||||||
147 [label="Function call: R|<local>/f|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow];
|
|
||||||
148 [label="Jump: ^runHigherOrder R|<local>/f|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()"];
|
|
||||||
149 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
150 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
151 [label="Exit function runHigherOrder" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
145 -> {146};
|
145 -> {146};
|
||||||
146 -> {147};
|
|
||||||
|
subgraph cluster_37 {
|
||||||
|
color=red
|
||||||
|
147 [label="Enter function runHigherOrder" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_38 {
|
||||||
|
color=blue
|
||||||
|
148 [label="Enter block"];
|
||||||
|
149 [label="Function call: R|<local>/f|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow];
|
||||||
|
150 [label="Jump: ^runHigherOrder R|<local>/f|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()"];
|
||||||
|
151 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
152 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
153 [label="Exit function runHigherOrder" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
147 -> {148};
|
147 -> {148};
|
||||||
148 -> {151};
|
148 -> {149};
|
||||||
148 -> {149} [style=dotted];
|
149 -> {150};
|
||||||
149 -> {150} [style=dotted];
|
150 -> {153};
|
||||||
150 -> {151} [style=dotted];
|
150 -> {151} [style=dotted];
|
||||||
|
151 -> {152} [style=dotted];
|
||||||
|
152 -> {153} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_38 {
|
subgraph cluster_39 {
|
||||||
color=red
|
color=red
|
||||||
152 [label="Enter function <getter>" style="filled" fillcolor=red];
|
154 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_39 {
|
subgraph cluster_40 {
|
||||||
color=blue
|
color=blue
|
||||||
153 [label="Enter block"];
|
155 [label="Enter block"];
|
||||||
154 [label="Access variable R|kotlin/String.length|"];
|
156 [label="Access variable R|kotlin/String.length|"];
|
||||||
155 [label="Jump: ^ this@R|/ext|.R|kotlin/String.length|"];
|
157 [label="Jump: ^ this@R|/ext|.R|kotlin/String.length|"];
|
||||||
156 [label="Stub" style="filled" fillcolor=gray];
|
158 [label="Stub" style="filled" fillcolor=gray];
|
||||||
157 [label="Exit block" style="filled" fillcolor=gray];
|
159 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
158 [label="Exit function <getter>" style="filled" fillcolor=red];
|
160 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
152 -> {153};
|
|
||||||
153 -> {154};
|
|
||||||
154 -> {155};
|
154 -> {155};
|
||||||
155 -> {158};
|
155 -> {156};
|
||||||
155 -> {156} [style=dotted];
|
156 -> {157};
|
||||||
156 -> {157} [style=dotted];
|
157 -> {160};
|
||||||
157 -> {158} [style=dotted];
|
157 -> {158} [style=dotted];
|
||||||
|
158 -> {159} [style=dotted];
|
||||||
|
159 -> {160} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_40 {
|
subgraph cluster_41 {
|
||||||
color=red
|
color=red
|
||||||
159 [label="Enter function test_4" style="filled" fillcolor=red];
|
161 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
subgraph cluster_41 {
|
subgraph cluster_42 {
|
||||||
color=blue
|
color=blue
|
||||||
160 [label="Enter block"];
|
162 [label="Enter block"];
|
||||||
161 [label="Access variable R|<local>/a|"];
|
163 [label="Access variable R|<local>/a|"];
|
||||||
162 [label="Type operator: (R|<local>/a| as? R|kotlin/String|)"];
|
164 [label="Type operator: (R|<local>/a| as? R|kotlin/String|)"];
|
||||||
163 [label="Variable declaration: lval s: R|kotlin/String?|"];
|
165 [label="Variable declaration: lval s: R|kotlin/String?|"];
|
||||||
164 [label="Access variable R|<local>/s|"];
|
166 [label="Access variable R|<local>/s|"];
|
||||||
165 [label="Enter safe call"];
|
167 [label="Enter safe call"];
|
||||||
166 [label="Access variable R|/ext|"];
|
168 [label="Access variable R|/ext|"];
|
||||||
167 [label="Exit safe call"];
|
169 [label="Exit safe call"];
|
||||||
168 [label="Exit lhs of ?:"];
|
170 [label="Exit lhs of ?:"];
|
||||||
169 [label="Enter rhs of ?:"];
|
171 [label="Enter rhs of ?:"];
|
||||||
170 [label="Jump: ^test_4 Unit"];
|
172 [label="Jump: ^test_4 Unit"];
|
||||||
171 [label="Stub" style="filled" fillcolor=gray];
|
173 [label="Stub" style="filled" fillcolor=gray];
|
||||||
172 [label="Lhs of ?: is not null"];
|
174 [label="Lhs of ?: is not null"];
|
||||||
173 [label="Exit ?:"];
|
175 [label="Exit ?:"];
|
||||||
174 [label="Variable declaration: lval length: R|kotlin/Int|"];
|
176 [label="Variable declaration: lval length: R|kotlin/Int|"];
|
||||||
175 [label="Postponed enter to lambda"];
|
177 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_42 {
|
subgraph cluster_43 {
|
||||||
color=blue
|
color=blue
|
||||||
176 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
178 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_43 {
|
subgraph cluster_44 {
|
||||||
color=blue
|
color=blue
|
||||||
177 [label="Enter block"];
|
179 [label="Enter block"];
|
||||||
178 [label="Access variable R|<local>/s|"];
|
180 [label="Access variable R|<local>/s|"];
|
||||||
179 [label="Smart cast: R|<local>/s|"];
|
181 [label="Smart cast: R|<local>/s|"];
|
||||||
180 [label="Access variable R|kotlin/String.length|"];
|
182 [label="Access variable R|kotlin/String.length|"];
|
||||||
181 [label="Exit block"];
|
183 [label="Exit block"];
|
||||||
}
|
}
|
||||||
182 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
184 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
183 [label="Postponed exit from lambda"];
|
185 [label="Postponed exit from lambda"];
|
||||||
184 [label="Function call: R|/runHigherOrder|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
186 [label="Function call: R|/runHigherOrder|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
185 [label="Exit block"];
|
187 [label="Exit block"];
|
||||||
}
|
}
|
||||||
186 [label="Exit function test_4" style="filled" fillcolor=red];
|
188 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
159 -> {160};
|
|
||||||
160 -> {161};
|
|
||||||
161 -> {162};
|
161 -> {162};
|
||||||
162 -> {163};
|
162 -> {163};
|
||||||
163 -> {164};
|
163 -> {164};
|
||||||
164 -> {165 169};
|
164 -> {165};
|
||||||
165 -> {166};
|
165 -> {166};
|
||||||
166 -> {167};
|
166 -> {167 171};
|
||||||
167 -> {168};
|
167 -> {168};
|
||||||
168 -> {169 172};
|
168 -> {169};
|
||||||
169 -> {170};
|
169 -> {170};
|
||||||
170 -> {186};
|
170 -> {171 174};
|
||||||
170 -> {171} [style=dotted];
|
171 -> {172};
|
||||||
171 -> {173} [style=dotted];
|
172 -> {188};
|
||||||
172 -> {173};
|
172 -> {173} [style=dotted];
|
||||||
173 -> {174};
|
173 -> {175} [style=dotted];
|
||||||
174 -> {175};
|
174 -> {175};
|
||||||
175 -> {176 183 184};
|
175 -> {176};
|
||||||
175 -> {176} [style=dashed];
|
|
||||||
176 -> {177};
|
176 -> {177};
|
||||||
177 -> {178};
|
177 -> {178 185 186};
|
||||||
|
177 -> {178} [style=dashed];
|
||||||
178 -> {179};
|
178 -> {179};
|
||||||
179 -> {180};
|
179 -> {180};
|
||||||
180 -> {181};
|
180 -> {181};
|
||||||
181 -> {182};
|
181 -> {182};
|
||||||
|
182 -> {183};
|
||||||
183 -> {184};
|
183 -> {184};
|
||||||
184 -> {185};
|
|
||||||
185 -> {186};
|
185 -> {186};
|
||||||
|
186 -> {187};
|
||||||
|
187 -> {188};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+122
-115
@@ -5,49 +5,54 @@ digraph simpleIf_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file simpleIf.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file simpleIf.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Enter when branch condition "];
|
|
||||||
4 [label="Access variable R|<local>/x|"];
|
|
||||||
5 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
6 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
7 [label="Synthetic else branch"];
|
|
||||||
8 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter block"];
|
5 [label="Enter when branch condition "];
|
||||||
10 [label="Access variable R|<local>/x|"];
|
6 [label="Access variable R|<local>/x|"];
|
||||||
11 [label="Smart cast: R|<local>/x|"];
|
7 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
12 [label="Access variable R|kotlin/String.length|"];
|
8 [label="Exit when branch condition"];
|
||||||
13 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
14 [label="Exit when branch result"];
|
9 [label="Synthetic else branch"];
|
||||||
15 [label="Exit when"];
|
10 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
12 [label="Access variable R|<local>/x|"];
|
||||||
|
13 [label="Smart cast: R|<local>/x|"];
|
||||||
|
14 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
15 [label="Exit block"];
|
||||||
|
}
|
||||||
|
16 [label="Exit when branch result"];
|
||||||
|
17 [label="Exit when"];
|
||||||
}
|
}
|
||||||
16 [label="Access variable R|<local>/x|"];
|
18 [label="Access variable R|<local>/x|"];
|
||||||
17 [label="Access variable <Unresolved name: length>#"];
|
19 [label="Access variable <Unresolved name: length>#"];
|
||||||
18 [label="Exit block"];
|
20 [label="Exit block"];
|
||||||
}
|
}
|
||||||
19 [label="Exit function test_1" style="filled" fillcolor=red];
|
21 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7 8};
|
6 -> {7};
|
||||||
7 -> {15};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9 10};
|
||||||
9 -> {10};
|
9 -> {17};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
@@ -57,56 +62,56 @@ digraph simpleIf_kt {
|
|||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
|
19 -> {20};
|
||||||
|
20 -> {21};
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=red
|
color=red
|
||||||
20 [label="Enter function test_2" style="filled" fillcolor=red];
|
22 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
21 [label="Enter block"];
|
23 [label="Enter block"];
|
||||||
22 [label="Access variable R|<local>/x|"];
|
24 [label="Access variable R|<local>/x|"];
|
||||||
23 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
25 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
24 [label="Variable declaration: lval b: R|kotlin/Boolean|"];
|
26 [label="Variable declaration: lval b: R|kotlin/Boolean|"];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
25 [label="Enter when"];
|
27 [label="Enter when"];
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
26 [label="Enter when branch condition "];
|
|
||||||
27 [label="Access variable R|<local>/b|"];
|
|
||||||
28 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
29 [label="Synthetic else branch"];
|
|
||||||
30 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
31 [label="Enter block"];
|
28 [label="Enter when branch condition "];
|
||||||
32 [label="Access variable R|<local>/x|"];
|
29 [label="Access variable R|<local>/b|"];
|
||||||
33 [label="Smart cast: R|<local>/x|"];
|
30 [label="Exit when branch condition"];
|
||||||
34 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
35 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
36 [label="Exit when branch result"];
|
31 [label="Synthetic else branch"];
|
||||||
37 [label="Exit when"];
|
32 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
34 [label="Access variable R|<local>/x|"];
|
||||||
|
35 [label="Smart cast: R|<local>/x|"];
|
||||||
|
36 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
37 [label="Exit block"];
|
||||||
|
}
|
||||||
|
38 [label="Exit when branch result"];
|
||||||
|
39 [label="Exit when"];
|
||||||
}
|
}
|
||||||
38 [label="Access variable R|<local>/x|"];
|
40 [label="Access variable R|<local>/x|"];
|
||||||
39 [label="Access variable <Unresolved name: length>#"];
|
41 [label="Access variable <Unresolved name: length>#"];
|
||||||
40 [label="Exit block"];
|
42 [label="Exit block"];
|
||||||
}
|
}
|
||||||
41 [label="Exit function test_2" style="filled" fillcolor=red];
|
43 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
20 -> {21};
|
|
||||||
21 -> {22};
|
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29 30};
|
28 -> {29};
|
||||||
29 -> {37};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31 32};
|
||||||
31 -> {32};
|
31 -> {39};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
@@ -116,83 +121,83 @@ digraph simpleIf_kt {
|
|||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
|
41 -> {42};
|
||||||
|
42 -> {43};
|
||||||
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=red
|
color=red
|
||||||
42 [label="Enter function test_3" style="filled" fillcolor=red];
|
44 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
43 [label="Enter block"];
|
45 [label="Enter block"];
|
||||||
subgraph cluster_12 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
44 [label="Enter when"];
|
46 [label="Enter when"];
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
45 [label="Enter when branch condition "];
|
|
||||||
46 [label="Access variable R|<local>/x|"];
|
|
||||||
47 [label="Type operator: (R|<local>/x| !is R|kotlin/String|)"];
|
|
||||||
48 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
49 [label="Enter when branch condition "];
|
47 [label="Enter when branch condition "];
|
||||||
50 [label="Access variable R|<local>/x|"];
|
48 [label="Access variable R|<local>/x|"];
|
||||||
51 [label="Smart cast: R|<local>/x|"];
|
49 [label="Type operator: (R|<local>/x| !is R|kotlin/String|)"];
|
||||||
52 [label="Type operator: (R|<local>/x| !is R|kotlin/Int|)"];
|
50 [label="Exit when branch condition"];
|
||||||
53 [label="Exit when branch condition"];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
54 [label="Enter when branch condition else"];
|
51 [label="Enter when branch condition "];
|
||||||
|
52 [label="Access variable R|<local>/x|"];
|
||||||
|
53 [label="Smart cast: R|<local>/x|"];
|
||||||
|
54 [label="Type operator: (R|<local>/x| !is R|kotlin/Int|)"];
|
||||||
55 [label="Exit when branch condition"];
|
55 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
56 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
57 [label="Enter block"];
|
56 [label="Enter when branch condition else"];
|
||||||
58 [label="Access variable R|<local>/x|"];
|
57 [label="Exit when branch condition"];
|
||||||
59 [label="Smart cast: R|<local>/x|"];
|
|
||||||
60 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
61 [label="Access variable R|<local>/x|"];
|
|
||||||
62 [label="Smart cast: R|<local>/x|"];
|
|
||||||
63 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
64 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
65 [label="Exit when branch result"];
|
58 [label="Enter when branch result"];
|
||||||
66 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
67 [label="Enter block"];
|
59 [label="Enter block"];
|
||||||
68 [label="Exit block"];
|
60 [label="Access variable R|<local>/x|"];
|
||||||
|
61 [label="Smart cast: R|<local>/x|"];
|
||||||
|
62 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
63 [label="Access variable R|<local>/x|"];
|
||||||
|
64 [label="Smart cast: R|<local>/x|"];
|
||||||
|
65 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
66 [label="Exit block"];
|
||||||
}
|
}
|
||||||
69 [label="Exit when branch result"];
|
67 [label="Exit when branch result"];
|
||||||
70 [label="Enter when branch result"];
|
68 [label="Enter when branch result"];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
71 [label="Enter block"];
|
69 [label="Enter block"];
|
||||||
72 [label="Exit block"];
|
70 [label="Exit block"];
|
||||||
}
|
}
|
||||||
73 [label="Exit when branch result"];
|
71 [label="Exit when branch result"];
|
||||||
74 [label="Exit when"];
|
72 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
73 [label="Enter block"];
|
||||||
|
74 [label="Exit block"];
|
||||||
|
}
|
||||||
|
75 [label="Exit when branch result"];
|
||||||
|
76 [label="Exit when"];
|
||||||
}
|
}
|
||||||
75 [label="Exit block"];
|
77 [label="Exit block"];
|
||||||
}
|
}
|
||||||
76 [label="Exit function test_3" style="filled" fillcolor=red];
|
78 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
42 -> {43};
|
|
||||||
43 -> {44};
|
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49 70};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51 72};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54 66};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56 68};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
@@ -202,16 +207,18 @@ digraph simpleIf_kt {
|
|||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {74};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {76};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {74};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {76};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
|
76 -> {77};
|
||||||
|
77 -> {78};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+71
-64
@@ -5,97 +5,102 @@ digraph smartcastFromArgument_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file smartcastFromArgument.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file smartcastFromArgument.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function takeA" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
5 [label="Enter block"];
|
|
||||||
6 [label="Const: Boolean(true)"];
|
|
||||||
7 [label="Jump: ^takeA Boolean(true)"];
|
|
||||||
8 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
9 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
10 [label="Exit function takeA" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
|
||||||
7 -> {10};
|
|
||||||
7 -> {8} [style=dotted];
|
|
||||||
8 -> {9} [style=dotted];
|
|
||||||
9 -> {10} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
11 [label="Enter function test" style="filled" fillcolor=red];
|
6 [label="Enter function takeA" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter block"];
|
7 [label="Enter block"];
|
||||||
subgraph cluster_6 {
|
8 [label="Const: Boolean(true)"];
|
||||||
|
9 [label="Jump: ^takeA Boolean(true)"];
|
||||||
|
10 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
11 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
12 [label="Exit function takeA" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
6 -> {7};
|
||||||
|
7 -> {8};
|
||||||
|
8 -> {9};
|
||||||
|
9 -> {12};
|
||||||
|
9 -> {10} [style=dotted];
|
||||||
|
10 -> {11} [style=dotted];
|
||||||
|
11 -> {12} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
13 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
14 [label="Enter block"];
|
||||||
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
13 [label="Enter when"];
|
15 [label="Enter when"];
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
14 [label="Enter when branch condition "];
|
|
||||||
15 [label="Access variable R|<local>/a|"];
|
|
||||||
16 [label="Type operator: (R|<local>/a| as? R|A|)"];
|
|
||||||
17 [label="Exit lhs of ?:"];
|
|
||||||
18 [label="Enter rhs of ?:"];
|
|
||||||
19 [label="Jump: ^test Unit"];
|
|
||||||
20 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
21 [label="Lhs of ?: is not null"];
|
|
||||||
22 [label="Exit ?:"];
|
|
||||||
23 [label="Function call: R|/takeA|(...)" style="filled" fillcolor=yellow];
|
|
||||||
24 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
25 [label="Synthetic else branch"];
|
|
||||||
26 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter block"];
|
16 [label="Enter when branch condition "];
|
||||||
28 [label="Access variable R|<local>/a|"];
|
17 [label="Access variable R|<local>/a|"];
|
||||||
29 [label="Smart cast: R|<local>/a|"];
|
18 [label="Type operator: (R|<local>/a| as? R|A|)"];
|
||||||
30 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
19 [label="Exit lhs of ?:"];
|
||||||
31 [label="Exit block"];
|
20 [label="Enter rhs of ?:"];
|
||||||
|
21 [label="Jump: ^test Unit"];
|
||||||
|
22 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
23 [label="Lhs of ?: is not null"];
|
||||||
|
24 [label="Exit ?:"];
|
||||||
|
25 [label="Function call: R|/takeA|(...)" style="filled" fillcolor=yellow];
|
||||||
|
26 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
32 [label="Exit when branch result"];
|
27 [label="Synthetic else branch"];
|
||||||
33 [label="Exit when"];
|
28 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
29 [label="Enter block"];
|
||||||
|
30 [label="Access variable R|<local>/a|"];
|
||||||
|
31 [label="Smart cast: R|<local>/a|"];
|
||||||
|
32 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
33 [label="Exit block"];
|
||||||
|
}
|
||||||
|
34 [label="Exit when branch result"];
|
||||||
|
35 [label="Exit when"];
|
||||||
}
|
}
|
||||||
34 [label="Exit block"];
|
36 [label="Exit block"];
|
||||||
}
|
}
|
||||||
35 [label="Exit function test" style="filled" fillcolor=red];
|
37 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
11 -> {12};
|
|
||||||
12 -> {13};
|
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 21};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {35};
|
19 -> {20 23};
|
||||||
19 -> {20} [style=dotted];
|
20 -> {21};
|
||||||
20 -> {22} [style=dotted];
|
21 -> {37};
|
||||||
21 -> {22};
|
21 -> {22} [style=dotted];
|
||||||
22 -> {23};
|
22 -> {24} [style=dotted];
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25 26};
|
24 -> {25};
|
||||||
25 -> {33};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27 28};
|
||||||
27 -> {28};
|
27 -> {35};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
@@ -103,5 +108,7 @@ digraph smartcastFromArgument_kt {
|
|||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
|
35 -> {36};
|
||||||
|
36 -> {37};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+415
-408
File diff suppressed because it is too large
Load Diff
Vendored
+107
-100
@@ -5,198 +5,205 @@ digraph whenSubjectExpression_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function whenWithSubjectExpression" style="filled" fillcolor=red];
|
0 [label="Enter file whenSubjectExpression.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file whenSubjectExpression.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function whenWithSubjectExpression" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
3 [label="Access variable R|<local>/x|"];
|
5 [label="Access variable R|<local>/x|"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
4 [label="Enter when branch condition "];
|
|
||||||
5 [label="Exit $subj"];
|
|
||||||
6 [label="Type operator: ($subj$ !is R|kotlin/Double|)"];
|
|
||||||
7 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter when branch condition "];
|
6 [label="Enter when branch condition "];
|
||||||
9 [label="Exit $subj"];
|
7 [label="Exit $subj"];
|
||||||
10 [label="Const: Double(0.0)"];
|
8 [label="Type operator: ($subj$ !is R|kotlin/Double|)"];
|
||||||
11 [label="Equality operator =="];
|
9 [label="Exit when branch condition"];
|
||||||
12 [label="Exit when branch condition"];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
13 [label="Enter when branch condition else"];
|
10 [label="Enter when branch condition "];
|
||||||
|
11 [label="Exit $subj"];
|
||||||
|
12 [label="Const: Double(0.0)"];
|
||||||
|
13 [label="Equality operator =="];
|
||||||
14 [label="Exit when branch condition"];
|
14 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
15 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter block"];
|
15 [label="Enter when branch condition else"];
|
||||||
17 [label="Access variable R|<local>/x|"];
|
16 [label="Exit when branch condition"];
|
||||||
18 [label="Smart cast: R|<local>/x|"];
|
|
||||||
19 [label="Function call: R|<local>/x|.R|kotlin/Double.toInt|()" style="filled" fillcolor=yellow];
|
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
21 [label="Exit when branch result"];
|
17 [label="Enter when branch result"];
|
||||||
22 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
18 [label="Enter block"];
|
||||||
24 [label="Const: Int(0)"];
|
19 [label="Access variable R|<local>/x|"];
|
||||||
25 [label="Exit block"];
|
20 [label="Smart cast: R|<local>/x|"];
|
||||||
|
21 [label="Function call: R|<local>/x|.R|kotlin/Double.toInt|()" style="filled" fillcolor=yellow];
|
||||||
|
22 [label="Exit block"];
|
||||||
}
|
}
|
||||||
26 [label="Exit when branch result"];
|
23 [label="Exit when branch result"];
|
||||||
27 [label="Enter when branch result"];
|
24 [label="Enter when branch result"];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
28 [label="Enter block"];
|
25 [label="Enter block"];
|
||||||
29 [label="Const: Int(-1)"];
|
26 [label="Const: Int(0)"];
|
||||||
30 [label="Exit block"];
|
27 [label="Exit block"];
|
||||||
}
|
}
|
||||||
31 [label="Exit when branch result"];
|
28 [label="Exit when branch result"];
|
||||||
32 [label="Exit when"];
|
29 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
30 [label="Enter block"];
|
||||||
|
31 [label="Const: Int(-1)"];
|
||||||
|
32 [label="Exit block"];
|
||||||
|
}
|
||||||
|
33 [label="Exit when branch result"];
|
||||||
|
34 [label="Exit when"];
|
||||||
}
|
}
|
||||||
33 [label="Exit block"];
|
35 [label="Exit block"];
|
||||||
}
|
}
|
||||||
34 [label="Exit function whenWithSubjectExpression" style="filled" fillcolor=red];
|
36 [label="Exit function whenWithSubjectExpression" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 27};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 29};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13 22};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15 24};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {32};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {34};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {32};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {34};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
|
34 -> {35};
|
||||||
|
35 -> {36};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
35 [label="Enter function whenWithSubjectVariable" style="filled" fillcolor=red];
|
37 [label="Enter function whenWithSubjectVariable" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
36 [label="Enter block"];
|
38 [label="Enter block"];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
37 [label="Enter when"];
|
39 [label="Enter when"];
|
||||||
38 [label="Access variable R|<local>/x|"];
|
40 [label="Access variable R|<local>/x|"];
|
||||||
39 [label="Variable declaration: lval y: R|kotlin/Any|"];
|
41 [label="Variable declaration: lval y: R|kotlin/Any|"];
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
40 [label="Enter when branch condition "];
|
|
||||||
41 [label="Exit $subj"];
|
|
||||||
42 [label="Type operator: ($subj$ !is R|kotlin/Double|)"];
|
|
||||||
43 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
44 [label="Enter when branch condition "];
|
42 [label="Enter when branch condition "];
|
||||||
45 [label="Exit $subj"];
|
43 [label="Exit $subj"];
|
||||||
46 [label="Const: Double(0.0)"];
|
44 [label="Type operator: ($subj$ !is R|kotlin/Double|)"];
|
||||||
47 [label="Equality operator =="];
|
45 [label="Exit when branch condition"];
|
||||||
48 [label="Exit when branch condition"];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
49 [label="Enter when branch condition else"];
|
46 [label="Enter when branch condition "];
|
||||||
|
47 [label="Exit $subj"];
|
||||||
|
48 [label="Const: Double(0.0)"];
|
||||||
|
49 [label="Equality operator =="];
|
||||||
50 [label="Exit when branch condition"];
|
50 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
51 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
52 [label="Enter block"];
|
51 [label="Enter when branch condition else"];
|
||||||
53 [label="Access variable R|<local>/y|"];
|
52 [label="Exit when branch condition"];
|
||||||
54 [label="Smart cast: R|<local>/y|"];
|
|
||||||
55 [label="Function call: R|<local>/y|.R|kotlin/Double.toInt|()" style="filled" fillcolor=yellow];
|
|
||||||
56 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
57 [label="Exit when branch result"];
|
53 [label="Enter when branch result"];
|
||||||
58 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
59 [label="Enter block"];
|
54 [label="Enter block"];
|
||||||
60 [label="Const: Int(0)"];
|
55 [label="Access variable R|<local>/y|"];
|
||||||
61 [label="Exit block"];
|
56 [label="Smart cast: R|<local>/y|"];
|
||||||
|
57 [label="Function call: R|<local>/y|.R|kotlin/Double.toInt|()" style="filled" fillcolor=yellow];
|
||||||
|
58 [label="Exit block"];
|
||||||
}
|
}
|
||||||
62 [label="Exit when branch result"];
|
59 [label="Exit when branch result"];
|
||||||
63 [label="Enter when branch result"];
|
60 [label="Enter when branch result"];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
64 [label="Enter block"];
|
61 [label="Enter block"];
|
||||||
65 [label="Const: Int(-1)"];
|
62 [label="Const: Int(0)"];
|
||||||
66 [label="Exit block"];
|
63 [label="Exit block"];
|
||||||
}
|
}
|
||||||
67 [label="Exit when branch result"];
|
64 [label="Exit when branch result"];
|
||||||
68 [label="Exit when"];
|
65 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
66 [label="Enter block"];
|
||||||
|
67 [label="Const: Int(-1)"];
|
||||||
|
68 [label="Exit block"];
|
||||||
|
}
|
||||||
|
69 [label="Exit when branch result"];
|
||||||
|
70 [label="Exit when"];
|
||||||
}
|
}
|
||||||
69 [label="Exit block"];
|
71 [label="Exit block"];
|
||||||
}
|
}
|
||||||
70 [label="Exit function whenWithSubjectVariable" style="filled" fillcolor=red];
|
72 [label="Exit function whenWithSubjectVariable" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
35 -> {36};
|
|
||||||
36 -> {37};
|
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44 63};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46 65};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49 58};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51 60};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {68};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {70};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {68};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {70};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
|
70 -> {71};
|
||||||
|
71 -> {72};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+225
-218
@@ -5,91 +5,96 @@ digraph equalsAndIdentity_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file equalsAndIdentity.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file equalsAndIdentity.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test_1" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
5 [label="Enter block"];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
6 [label="Enter when"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
7 [label="Enter when branch condition "];
|
|
||||||
8 [label="Access variable R|<local>/x|"];
|
|
||||||
9 [label="Access variable R|<local>/y|"];
|
|
||||||
10 [label="Equality operator =="];
|
|
||||||
11 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
12 [label="Synthetic else branch"];
|
|
||||||
13 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
14 [label="Enter block"];
|
|
||||||
15 [label="Access variable R|<local>/x|"];
|
|
||||||
16 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
17 [label="Access variable R|<local>/y|"];
|
|
||||||
18 [label="Smart cast: R|<local>/y|"];
|
|
||||||
19 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
|
||||||
21 [label="Exit when branch result"];
|
|
||||||
22 [label="Exit when"];
|
|
||||||
}
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
23 [label="Enter when"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
24 [label="Enter when branch condition "];
|
|
||||||
25 [label="Access variable R|<local>/x|"];
|
|
||||||
26 [label="Access variable R|<local>/y|"];
|
|
||||||
27 [label="Equality operator ==="];
|
|
||||||
28 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
29 [label="Synthetic else branch"];
|
|
||||||
30 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
32 [label="Access variable R|<local>/x|"];
|
|
||||||
33 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
34 [label="Access variable R|<local>/y|"];
|
|
||||||
35 [label="Smart cast: R|<local>/y|"];
|
|
||||||
36 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
37 [label="Exit block"];
|
|
||||||
}
|
|
||||||
38 [label="Exit when branch result"];
|
|
||||||
39 [label="Exit when"];
|
|
||||||
}
|
|
||||||
40 [label="Exit block"];
|
|
||||||
}
|
|
||||||
41 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter when"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter when branch condition "];
|
||||||
|
10 [label="Access variable R|<local>/x|"];
|
||||||
|
11 [label="Access variable R|<local>/y|"];
|
||||||
|
12 [label="Equality operator =="];
|
||||||
|
13 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
14 [label="Synthetic else branch"];
|
||||||
|
15 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
16 [label="Enter block"];
|
||||||
|
17 [label="Access variable R|<local>/x|"];
|
||||||
|
18 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
19 [label="Access variable R|<local>/y|"];
|
||||||
|
20 [label="Smart cast: R|<local>/y|"];
|
||||||
|
21 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
22 [label="Exit block"];
|
||||||
|
}
|
||||||
|
23 [label="Exit when branch result"];
|
||||||
|
24 [label="Exit when"];
|
||||||
|
}
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter when"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter when branch condition "];
|
||||||
|
27 [label="Access variable R|<local>/x|"];
|
||||||
|
28 [label="Access variable R|<local>/y|"];
|
||||||
|
29 [label="Equality operator ==="];
|
||||||
|
30 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
31 [label="Synthetic else branch"];
|
||||||
|
32 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
34 [label="Access variable R|<local>/x|"];
|
||||||
|
35 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
36 [label="Access variable R|<local>/y|"];
|
||||||
|
37 [label="Smart cast: R|<local>/y|"];
|
||||||
|
38 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
39 [label="Exit block"];
|
||||||
|
}
|
||||||
|
40 [label="Exit when branch result"];
|
||||||
|
41 [label="Exit when"];
|
||||||
|
}
|
||||||
|
42 [label="Exit block"];
|
||||||
|
}
|
||||||
|
43 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12 13};
|
11 -> {12};
|
||||||
12 -> {22};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 15};
|
||||||
14 -> {15};
|
14 -> {24};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
@@ -103,10 +108,10 @@ digraph equalsAndIdentity_kt {
|
|||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29 30};
|
28 -> {29};
|
||||||
29 -> {39};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31 32};
|
||||||
31 -> {32};
|
31 -> {41};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
@@ -116,78 +121,78 @@ digraph equalsAndIdentity_kt {
|
|||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
|
41 -> {42};
|
||||||
|
42 -> {43};
|
||||||
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=red
|
color=red
|
||||||
42 [label="Enter function test_2" style="filled" fillcolor=red];
|
44 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
43 [label="Enter block"];
|
45 [label="Enter block"];
|
||||||
subgraph cluster_12 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
44 [label="Enter when"];
|
46 [label="Enter when"];
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
45 [label="Enter when branch condition "];
|
|
||||||
46 [label="Access variable R|<local>/x|"];
|
|
||||||
47 [label="Access variable R|<local>/y|"];
|
|
||||||
48 [label="Equality operator =="];
|
|
||||||
49 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
50 [label="Synthetic else branch"];
|
|
||||||
51 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
52 [label="Enter block"];
|
47 [label="Enter when branch condition "];
|
||||||
53 [label="Access variable R|<local>/x|"];
|
48 [label="Access variable R|<local>/x|"];
|
||||||
54 [label="Function call: R|<local>/x|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
49 [label="Access variable R|<local>/y|"];
|
||||||
55 [label="Access variable R|<local>/y|"];
|
50 [label="Equality operator =="];
|
||||||
56 [label="Function call: R|<local>/y|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
51 [label="Exit when branch condition"];
|
||||||
57 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
58 [label="Exit when branch result"];
|
52 [label="Synthetic else branch"];
|
||||||
59 [label="Exit when"];
|
53 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_15 {
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
60 [label="Enter when"];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
color=blue
|
||||||
61 [label="Enter when branch condition "];
|
54 [label="Enter block"];
|
||||||
62 [label="Access variable R|<local>/x|"];
|
55 [label="Access variable R|<local>/x|"];
|
||||||
63 [label="Access variable R|<local>/y|"];
|
56 [label="Function call: R|<local>/x|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
64 [label="Equality operator ==="];
|
57 [label="Access variable R|<local>/y|"];
|
||||||
65 [label="Exit when branch condition"];
|
58 [label="Function call: R|<local>/y|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
59 [label="Exit block"];
|
||||||
}
|
}
|
||||||
66 [label="Synthetic else branch"];
|
60 [label="Exit when branch result"];
|
||||||
67 [label="Enter when branch result"];
|
61 [label="Exit when"];
|
||||||
|
}
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
62 [label="Enter when"];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
68 [label="Enter block"];
|
63 [label="Enter when branch condition "];
|
||||||
69 [label="Access variable R|<local>/x|"];
|
64 [label="Access variable R|<local>/x|"];
|
||||||
70 [label="Function call: R|<local>/x|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
65 [label="Access variable R|<local>/y|"];
|
||||||
71 [label="Access variable R|<local>/y|"];
|
66 [label="Equality operator ==="];
|
||||||
72 [label="Function call: R|<local>/y|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
67 [label="Exit when branch condition"];
|
||||||
73 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
74 [label="Exit when branch result"];
|
68 [label="Synthetic else branch"];
|
||||||
75 [label="Exit when"];
|
69 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
70 [label="Enter block"];
|
||||||
|
71 [label="Access variable R|<local>/x|"];
|
||||||
|
72 [label="Function call: R|<local>/x|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
73 [label="Access variable R|<local>/y|"];
|
||||||
|
74 [label="Function call: R|<local>/y|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
|
75 [label="Exit block"];
|
||||||
|
}
|
||||||
|
76 [label="Exit when branch result"];
|
||||||
|
77 [label="Exit when"];
|
||||||
}
|
}
|
||||||
76 [label="Exit block"];
|
78 [label="Exit block"];
|
||||||
}
|
}
|
||||||
77 [label="Exit function test_2" style="filled" fillcolor=red];
|
79 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
42 -> {43};
|
|
||||||
43 -> {44};
|
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50 51};
|
49 -> {50};
|
||||||
50 -> {59};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52 53};
|
||||||
52 -> {53};
|
52 -> {61};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
@@ -200,10 +205,10 @@ digraph equalsAndIdentity_kt {
|
|||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66 67};
|
65 -> {66};
|
||||||
66 -> {75};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68 69};
|
||||||
68 -> {69};
|
68 -> {77};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
@@ -212,123 +217,123 @@ digraph equalsAndIdentity_kt {
|
|||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
|
77 -> {78};
|
||||||
|
78 -> {79};
|
||||||
|
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=red
|
color=red
|
||||||
78 [label="Enter function test_3" style="filled" fillcolor=red];
|
80 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_19 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
79 [label="Enter block"];
|
81 [label="Enter block"];
|
||||||
subgraph cluster_20 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
80 [label="Enter when"];
|
82 [label="Enter when"];
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
81 [label="Enter when branch condition "];
|
|
||||||
82 [label="Access variable R|<local>/y|"];
|
|
||||||
83 [label="Const: Null(null)"];
|
|
||||||
84 [label="Equality operator =="];
|
|
||||||
85 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
86 [label="Synthetic else branch"];
|
|
||||||
87 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
88 [label="Enter block"];
|
83 [label="Enter when branch condition "];
|
||||||
89 [label="Jump: ^test_3 Unit"];
|
84 [label="Access variable R|<local>/y|"];
|
||||||
90 [label="Stub" style="filled" fillcolor=gray];
|
85 [label="Const: Null(null)"];
|
||||||
91 [label="Exit block" style="filled" fillcolor=gray];
|
86 [label="Equality operator =="];
|
||||||
|
87 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
92 [label="Exit when branch result" style="filled" fillcolor=gray];
|
88 [label="Synthetic else branch"];
|
||||||
93 [label="Exit when"];
|
89 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_23 {
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
94 [label="Enter when"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
color=blue
|
||||||
95 [label="Enter when branch condition "];
|
90 [label="Enter block"];
|
||||||
96 [label="Access variable R|<local>/x|"];
|
91 [label="Jump: ^test_3 Unit"];
|
||||||
97 [label="Access variable R|<local>/y|"];
|
92 [label="Stub" style="filled" fillcolor=gray];
|
||||||
98 [label="Smart cast: R|<local>/y|"];
|
93 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
99 [label="Equality operator =="];
|
|
||||||
100 [label="Exit when branch condition"];
|
|
||||||
}
|
}
|
||||||
101 [label="Synthetic else branch"];
|
94 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
102 [label="Enter when branch result"];
|
95 [label="Exit when"];
|
||||||
|
}
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
96 [label="Enter when"];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
103 [label="Enter block"];
|
97 [label="Enter when branch condition "];
|
||||||
104 [label="Access variable R|<local>/x|"];
|
98 [label="Access variable R|<local>/x|"];
|
||||||
105 [label="Smart cast: R|<local>/x|"];
|
99 [label="Access variable R|<local>/y|"];
|
||||||
106 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
100 [label="Smart cast: R|<local>/y|"];
|
||||||
107 [label="Access variable R|<local>/y|"];
|
101 [label="Equality operator =="];
|
||||||
108 [label="Smart cast: R|<local>/y|"];
|
102 [label="Exit when branch condition"];
|
||||||
109 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
110 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
111 [label="Exit when branch result"];
|
103 [label="Synthetic else branch"];
|
||||||
112 [label="Exit when"];
|
104 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_26 {
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
113 [label="Enter when"];
|
|
||||||
subgraph cluster_27 {
|
|
||||||
color=blue
|
color=blue
|
||||||
114 [label="Enter when branch condition "];
|
105 [label="Enter block"];
|
||||||
115 [label="Access variable R|<local>/x|"];
|
106 [label="Access variable R|<local>/x|"];
|
||||||
116 [label="Access variable R|<local>/y|"];
|
107 [label="Smart cast: R|<local>/x|"];
|
||||||
117 [label="Smart cast: R|<local>/y|"];
|
108 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
118 [label="Equality operator ==="];
|
109 [label="Access variable R|<local>/y|"];
|
||||||
119 [label="Exit when branch condition"];
|
110 [label="Smart cast: R|<local>/y|"];
|
||||||
|
111 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
112 [label="Exit block"];
|
||||||
}
|
}
|
||||||
120 [label="Synthetic else branch"];
|
113 [label="Exit when branch result"];
|
||||||
121 [label="Enter when branch result"];
|
114 [label="Exit when"];
|
||||||
|
}
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
115 [label="Enter when"];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
122 [label="Enter block"];
|
116 [label="Enter when branch condition "];
|
||||||
123 [label="Access variable R|<local>/x|"];
|
117 [label="Access variable R|<local>/x|"];
|
||||||
124 [label="Smart cast: R|<local>/x|"];
|
118 [label="Access variable R|<local>/y|"];
|
||||||
125 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
119 [label="Smart cast: R|<local>/y|"];
|
||||||
126 [label="Access variable R|<local>/y|"];
|
120 [label="Equality operator ==="];
|
||||||
127 [label="Smart cast: R|<local>/y|"];
|
121 [label="Exit when branch condition"];
|
||||||
128 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
129 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
130 [label="Exit when branch result"];
|
122 [label="Synthetic else branch"];
|
||||||
131 [label="Exit when"];
|
123 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
124 [label="Enter block"];
|
||||||
|
125 [label="Access variable R|<local>/x|"];
|
||||||
|
126 [label="Smart cast: R|<local>/x|"];
|
||||||
|
127 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
128 [label="Access variable R|<local>/y|"];
|
||||||
|
129 [label="Smart cast: R|<local>/y|"];
|
||||||
|
130 [label="Function call: R|<local>/y|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
131 [label="Exit block"];
|
||||||
|
}
|
||||||
|
132 [label="Exit when branch result"];
|
||||||
|
133 [label="Exit when"];
|
||||||
}
|
}
|
||||||
132 [label="Exit block"];
|
134 [label="Exit block"];
|
||||||
}
|
}
|
||||||
133 [label="Exit function test_3" style="filled" fillcolor=red];
|
135 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
78 -> {79};
|
|
||||||
79 -> {80};
|
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86 87};
|
85 -> {86};
|
||||||
86 -> {93};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88 89};
|
||||||
88 -> {89};
|
88 -> {95};
|
||||||
89 -> {133};
|
89 -> {90};
|
||||||
89 -> {90} [style=dotted];
|
90 -> {91};
|
||||||
90 -> {91} [style=dotted];
|
91 -> {135};
|
||||||
91 -> {92} [style=dotted];
|
91 -> {92} [style=dotted];
|
||||||
92 -> {93} [style=dotted];
|
92 -> {93} [style=dotted];
|
||||||
93 -> {94};
|
93 -> {94} [style=dotted];
|
||||||
94 -> {95};
|
94 -> {95} [style=dotted];
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {101 102};
|
100 -> {101};
|
||||||
101 -> {112};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103 104};
|
||||||
103 -> {104};
|
103 -> {114};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
@@ -344,10 +349,10 @@ digraph equalsAndIdentity_kt {
|
|||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120 121};
|
119 -> {120};
|
||||||
120 -> {131};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122 123};
|
||||||
122 -> {123};
|
122 -> {133};
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
@@ -358,5 +363,7 @@ digraph equalsAndIdentity_kt {
|
|||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
|
133 -> {134};
|
||||||
|
134 -> {135};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+96
-87
@@ -5,147 +5,156 @@ digraph incorrectSmartcastToNothing_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter property" style="filled" fillcolor=red];
|
0 [label="Enter file incorrectSmartcastToNothing.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Const: String(foo)"];
|
subgraph cluster_1 {
|
||||||
2 [label="Function call: R|java/io/File.File|(...)" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
3 [label="Exit property" style="filled" fillcolor=red];
|
1 [label="Enter property" style="filled" fillcolor=red];
|
||||||
|
2 [label="Const: String(foo)"];
|
||||||
|
3 [label="Function call: R|java/io/File.File|(...)" style="filled" fillcolor=yellow];
|
||||||
|
4 [label="Exit property" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
5 [label="Exit file incorrectSmartcastToNothing.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
|
0 -> {5} [style=dotted];
|
||||||
|
0 -> {1} [style=dashed];
|
||||||
1 -> {2};
|
1 -> {2};
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function test" style="filled" fillcolor=red];
|
6 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter block"];
|
7 [label="Enter block"];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter when"];
|
8 [label="Enter when"];
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
7 [label="Enter when branch condition "];
|
|
||||||
8 [label="Access variable R|<local>/cacheExtSetting|"];
|
|
||||||
9 [label="Const: Null(null)"];
|
|
||||||
10 [label="Equality operator =="];
|
|
||||||
11 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter when branch condition "];
|
9 [label="Enter when branch condition "];
|
||||||
13 [label="Access variable R|<local>/cacheExtSetting|"];
|
10 [label="Access variable R|<local>/cacheExtSetting|"];
|
||||||
14 [label="Smart cast: R|<local>/cacheExtSetting|"];
|
11 [label="Const: Null(null)"];
|
||||||
15 [label="Function call: R|<local>/cacheExtSetting|.R|kotlin/text/isBlank|()" style="filled" fillcolor=yellow];
|
12 [label="Equality operator =="];
|
||||||
16 [label="Exit when branch condition"];
|
13 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
17 [label="Enter when branch condition else"];
|
14 [label="Enter when branch condition "];
|
||||||
|
15 [label="Access variable R|<local>/cacheExtSetting|"];
|
||||||
|
16 [label="Smart cast: R|<local>/cacheExtSetting|"];
|
||||||
|
17 [label="Function call: R|<local>/cacheExtSetting|.R|kotlin/text/isBlank|()" style="filled" fillcolor=yellow];
|
||||||
18 [label="Exit when branch condition"];
|
18 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
19 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
20 [label="Enter block"];
|
19 [label="Enter when branch condition else"];
|
||||||
21 [label="Access variable R|<local>/cacheExtSetting|"];
|
20 [label="Exit when branch condition"];
|
||||||
22 [label="Smart cast: R|<local>/cacheExtSetting|"];
|
|
||||||
23 [label="Function call: R|java/io/File.File|(...)" style="filled" fillcolor=yellow];
|
|
||||||
24 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
25 [label="Exit when branch result"];
|
21 [label="Enter when branch result"];
|
||||||
26 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter block"];
|
22 [label="Enter block"];
|
||||||
28 [label="Const: Null(null)"];
|
23 [label="Access variable R|<local>/cacheExtSetting|"];
|
||||||
29 [label="Exit block"];
|
24 [label="Smart cast: R|<local>/cacheExtSetting|"];
|
||||||
|
25 [label="Function call: R|java/io/File.File|(...)" style="filled" fillcolor=yellow];
|
||||||
|
26 [label="Exit block"];
|
||||||
}
|
}
|
||||||
30 [label="Exit when branch result"];
|
27 [label="Exit when branch result"];
|
||||||
31 [label="Enter when branch result"];
|
28 [label="Enter when branch result"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter block"];
|
29 [label="Enter block"];
|
||||||
33 [label="Access variable R|/cache|"];
|
30 [label="Const: Null(null)"];
|
||||||
34 [label="Enter safe call"];
|
31 [label="Exit block"];
|
||||||
35 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
37 [label="Enter block"];
|
|
||||||
38 [label="Access variable R|<local>/it|"];
|
|
||||||
39 [label="Const: String(main.kts.compiled.cache)"];
|
|
||||||
40 [label="Function call: R|java/io/File.File|(...)" style="filled" fillcolor=yellow];
|
|
||||||
41 [label="Exit block"];
|
|
||||||
}
|
|
||||||
42 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
43 [label="Postponed exit from lambda"];
|
|
||||||
44 [label="Function call: $subj$.R|kotlin/let|<R|java/io/File|, R|java/io/File|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
45 [label="Exit safe call"];
|
|
||||||
46 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
47 [label="Exit when branch result"];
|
32 [label="Exit when branch result"];
|
||||||
48 [label="Merge postponed lambda exits"];
|
33 [label="Enter when branch result"];
|
||||||
49 [label="Exit when"];
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
34 [label="Enter block"];
|
||||||
|
35 [label="Access variable R|/cache|"];
|
||||||
|
36 [label="Enter safe call"];
|
||||||
|
37 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
38 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
39 [label="Enter block"];
|
||||||
|
40 [label="Access variable R|<local>/it|"];
|
||||||
|
41 [label="Const: String(main.kts.compiled.cache)"];
|
||||||
|
42 [label="Function call: R|java/io/File.File|(...)" style="filled" fillcolor=yellow];
|
||||||
|
43 [label="Exit block"];
|
||||||
|
}
|
||||||
|
44 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
45 [label="Postponed exit from lambda"];
|
||||||
|
46 [label="Function call: $subj$.R|kotlin/let|<R|java/io/File|, R|java/io/File|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
47 [label="Exit safe call"];
|
||||||
|
48 [label="Exit block"];
|
||||||
|
}
|
||||||
|
49 [label="Exit when branch result"];
|
||||||
|
50 [label="Merge postponed lambda exits"];
|
||||||
|
51 [label="Exit when"];
|
||||||
}
|
}
|
||||||
50 [label="Variable declaration: lval cacheBaseDir: R|java/io/File?|"];
|
52 [label="Variable declaration: lval cacheBaseDir: R|java/io/File?|"];
|
||||||
51 [label="Exit block"];
|
53 [label="Exit block"];
|
||||||
}
|
}
|
||||||
52 [label="Exit function test" style="filled" fillcolor=red];
|
54 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5};
|
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12 31};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 33};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17 26};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19 28};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {49};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {51};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {49};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {51};
|
||||||
33 -> {34 45};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36 44};
|
35 -> {36 47};
|
||||||
35 -> {43} [style=dotted];
|
|
||||||
35 -> {36} [style=dashed];
|
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38 46};
|
||||||
|
37 -> {45} [style=dotted];
|
||||||
|
37 -> {38} [style=dashed];
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44} [color=green];
|
43 -> {44};
|
||||||
43 -> {48} [color=red];
|
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46 48};
|
45 -> {46} [color=green];
|
||||||
|
45 -> {50} [color=red];
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {49};
|
47 -> {48 50};
|
||||||
48 -> {49} [color=red];
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {51};
|
||||||
50 -> {51};
|
50 -> {51} [color=red];
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
|
52 -> {53};
|
||||||
|
53 -> {54};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+157
-150
@@ -5,93 +5,98 @@ digraph inPlaceLambdas_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file inPlaceLambdas.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file inPlaceLambdas.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter class B" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
5 [label="Exit class B" style="filled" fillcolor=red];
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5} [color=green];
|
4 -> {5};
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
6 [label="Enter function bar" style="filled" fillcolor=red];
|
6 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
7 [label="Exit function bar" style="filled" fillcolor=red];
|
7 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
6 -> {7};
|
6 -> {7} [color=green];
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function test_1" style="filled" fillcolor=red];
|
8 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
9 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
10 [label="Enter when"];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
11 [label="Enter when branch condition "];
|
|
||||||
12 [label="Access variable R|<local>/x|"];
|
|
||||||
13 [label="Type operator: (R|<local>/x| is R|A|)"];
|
|
||||||
14 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
15 [label="Synthetic else branch"];
|
|
||||||
16 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter block"];
|
|
||||||
18 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
20 [label="Enter block"];
|
|
||||||
21 [label="Access variable R|<local>/x|"];
|
|
||||||
22 [label="Smart cast: R|<local>/x|"];
|
|
||||||
23 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
24 [label="Exit block"];
|
|
||||||
}
|
|
||||||
25 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
26 [label="Postponed exit from lambda"];
|
|
||||||
27 [label="Function call: R|kotlin/run|<R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit when branch result"];
|
|
||||||
30 [label="Exit when"];
|
|
||||||
}
|
|
||||||
31 [label="Exit block"];
|
|
||||||
}
|
|
||||||
32 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
10 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter when"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
13 [label="Enter when branch condition "];
|
||||||
|
14 [label="Access variable R|<local>/x|"];
|
||||||
|
15 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||||
|
16 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
17 [label="Synthetic else branch"];
|
||||||
|
18 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter block"];
|
||||||
|
20 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
21 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
22 [label="Enter block"];
|
||||||
|
23 [label="Access variable R|<local>/x|"];
|
||||||
|
24 [label="Smart cast: R|<local>/x|"];
|
||||||
|
25 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
26 [label="Exit block"];
|
||||||
|
}
|
||||||
|
27 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
28 [label="Postponed exit from lambda"];
|
||||||
|
29 [label="Function call: R|kotlin/run|<R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit when branch result"];
|
||||||
|
32 [label="Exit when"];
|
||||||
|
}
|
||||||
|
33 [label="Exit block"];
|
||||||
|
}
|
||||||
|
34 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15 16};
|
14 -> {15};
|
||||||
15 -> {30};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17 18};
|
||||||
17 -> {18};
|
17 -> {32};
|
||||||
18 -> {19 27};
|
18 -> {19};
|
||||||
18 -> {26} [style=dotted];
|
|
||||||
18 -> {19} [style=dashed];
|
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21 29};
|
||||||
|
20 -> {28} [style=dotted];
|
||||||
|
20 -> {21} [style=dashed];
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
@@ -103,42 +108,42 @@ digraph inPlaceLambdas_kt {
|
|||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
subgraph cluster_11 {
|
|
||||||
color=red
|
|
||||||
33 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter block"];
|
|
||||||
35 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
37 [label="Enter block"];
|
|
||||||
38 [label="Access variable R|<local>/x|"];
|
|
||||||
39 [label="Type operator: (R|<local>/x| as R|B|)"];
|
|
||||||
40 [label="Exit block"];
|
|
||||||
}
|
|
||||||
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
42 [label="Postponed exit from lambda"];
|
|
||||||
43 [label="Function call: R|kotlin/run|<R|B|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Access variable R|<local>/x|"];
|
|
||||||
45 [label="Smart cast: R|<local>/x|"];
|
|
||||||
46 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
47 [label="Exit block"];
|
|
||||||
}
|
|
||||||
48 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
|
||||||
35 -> {36 43};
|
subgraph cluster_12 {
|
||||||
35 -> {42} [style=dotted];
|
color=red
|
||||||
35 -> {36} [style=dashed];
|
35 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter block"];
|
||||||
|
37 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
38 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
39 [label="Enter block"];
|
||||||
|
40 [label="Access variable R|<local>/x|"];
|
||||||
|
41 [label="Type operator: (R|<local>/x| as R|B|)"];
|
||||||
|
42 [label="Exit block"];
|
||||||
|
}
|
||||||
|
43 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
44 [label="Postponed exit from lambda"];
|
||||||
|
45 [label="Function call: R|kotlin/run|<R|B|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Access variable R|<local>/x|"];
|
||||||
|
47 [label="Smart cast: R|<local>/x|"];
|
||||||
|
48 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
49 [label="Exit block"];
|
||||||
|
}
|
||||||
|
50 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38 45};
|
||||||
|
37 -> {44} [style=dotted];
|
||||||
|
37 -> {38} [style=dashed];
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
@@ -149,74 +154,74 @@ digraph inPlaceLambdas_kt {
|
|||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
|
48 -> {49};
|
||||||
|
49 -> {50};
|
||||||
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=red
|
color=red
|
||||||
49 [label="Enter function test_3" style="filled" fillcolor=red];
|
51 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
50 [label="Enter block"];
|
52 [label="Enter block"];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
51 [label="Enter when"];
|
53 [label="Enter when"];
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
52 [label="Enter when branch condition "];
|
|
||||||
53 [label="Access variable R|<local>/x|"];
|
|
||||||
54 [label="Type operator: (R|<local>/x| is R|A|)"];
|
|
||||||
55 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
56 [label="Synthetic else branch"];
|
|
||||||
57 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_19 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
58 [label="Enter block"];
|
54 [label="Enter when branch condition "];
|
||||||
59 [label="Postponed enter to lambda"];
|
55 [label="Access variable R|<local>/x|"];
|
||||||
subgraph cluster_20 {
|
56 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||||
color=blue
|
57 [label="Exit when branch condition"];
|
||||||
60 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
61 [label="Enter block"];
|
|
||||||
62 [label="Access variable R|<local>/x|"];
|
|
||||||
63 [label="Smart cast: R|<local>/x|"];
|
|
||||||
64 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
65 [label="Access variable R|<local>/x|"];
|
|
||||||
66 [label="Smart cast: R|<local>/x|"];
|
|
||||||
67 [label="Type operator: (R|<local>/x| as R|B|)"];
|
|
||||||
68 [label="Exit block"];
|
|
||||||
}
|
|
||||||
69 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
70 [label="Postponed exit from lambda"];
|
|
||||||
71 [label="Function call: R|kotlin/run|<R|B|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
72 [label="Access variable R|<local>/x|"];
|
|
||||||
73 [label="Smart cast: R|<local>/x|"];
|
|
||||||
74 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
75 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
76 [label="Exit when branch result"];
|
58 [label="Synthetic else branch"];
|
||||||
77 [label="Exit when"];
|
59 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
60 [label="Enter block"];
|
||||||
|
61 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
62 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
63 [label="Enter block"];
|
||||||
|
64 [label="Access variable R|<local>/x|"];
|
||||||
|
65 [label="Smart cast: R|<local>/x|"];
|
||||||
|
66 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
67 [label="Access variable R|<local>/x|"];
|
||||||
|
68 [label="Smart cast: R|<local>/x|"];
|
||||||
|
69 [label="Type operator: (R|<local>/x| as R|B|)"];
|
||||||
|
70 [label="Exit block"];
|
||||||
|
}
|
||||||
|
71 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
72 [label="Postponed exit from lambda"];
|
||||||
|
73 [label="Function call: R|kotlin/run|<R|B|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
74 [label="Access variable R|<local>/x|"];
|
||||||
|
75 [label="Smart cast: R|<local>/x|"];
|
||||||
|
76 [label="Function call: R|<local>/x|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
77 [label="Exit block"];
|
||||||
|
}
|
||||||
|
78 [label="Exit when branch result"];
|
||||||
|
79 [label="Exit when"];
|
||||||
}
|
}
|
||||||
78 [label="Exit block"];
|
80 [label="Exit block"];
|
||||||
}
|
}
|
||||||
79 [label="Exit function test_3" style="filled" fillcolor=red];
|
81 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
49 -> {50};
|
|
||||||
50 -> {51};
|
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56 57};
|
55 -> {56};
|
||||||
56 -> {77};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58 59};
|
||||||
58 -> {59};
|
58 -> {79};
|
||||||
59 -> {60 71};
|
59 -> {60};
|
||||||
59 -> {70} [style=dotted];
|
|
||||||
59 -> {60} [style=dashed];
|
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62 73};
|
||||||
|
61 -> {72} [style=dotted];
|
||||||
|
61 -> {62} [style=dashed];
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
@@ -234,5 +239,7 @@ digraph inPlaceLambdas_kt {
|
|||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
|
79 -> {80};
|
||||||
|
80 -> {81};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+192
-185
@@ -5,235 +5,240 @@ digraph lambdaInWhenBranch_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class Sealed" style="filled" fillcolor=red];
|
0 [label="Enter file lambdaInWhenBranch.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file lambdaInWhenBranch.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
4 [label="Exit class Sealed" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
|
||||||
0 -> {1} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter class SubClass1" style="filled" fillcolor=red];
|
2 [label="Enter class Sealed" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter property" style="filled" fillcolor=red];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
7 [label="Access variable R|<local>/t|"];
|
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
8 [label="Exit property" style="filled" fillcolor=red];
|
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
6 [label="Exit class Sealed" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {6} [style=dotted];
|
||||||
|
2 -> {3} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
7 [label="Enter class SubClass1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
8 [label="Enter property" style="filled" fillcolor=red];
|
||||||
10 [label="Delegated constructor call: super<R|Sealed|>()" style="filled" fillcolor=yellow];
|
9 [label="Access variable R|<local>/t|"];
|
||||||
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
10 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
12 [label="Exit class SubClass1" style="filled" fillcolor=red];
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
12 [label="Delegated constructor call: super<R|Sealed|>()" style="filled" fillcolor=yellow];
|
||||||
|
13 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
14 [label="Exit class SubClass1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6} [color=green];
|
7 -> {8} [color=green];
|
||||||
5 -> {12} [style=dotted];
|
7 -> {14} [style=dotted];
|
||||||
5 -> {6 9} [style=dashed];
|
7 -> {8 11} [style=dashed];
|
||||||
6 -> {7};
|
8 -> {9};
|
||||||
7 -> {8};
|
|
||||||
8 -> {9} [color=green];
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11} [color=green];
|
||||||
11 -> {12} [color=green];
|
11 -> {12};
|
||||||
|
12 -> {13};
|
||||||
subgraph cluster_5 {
|
13 -> {14} [color=green];
|
||||||
color=red
|
|
||||||
13 [label="Enter function component1" style="filled" fillcolor=red];
|
|
||||||
14 [label="Exit function component1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
13 -> {14};
|
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=red
|
color=red
|
||||||
15 [label="Enter function copy" style="filled" fillcolor=red];
|
15 [label="Enter function component1" style="filled" fillcolor=red];
|
||||||
16 [label="Enter default value of t"];
|
16 [label="Exit function component1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter default value of t" style="filled" fillcolor=red];
|
|
||||||
18 [label="Access variable R|/SubClass1.t|"];
|
|
||||||
19 [label="Exit default value of t" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
20 [label="Exit default value of t"];
|
|
||||||
21 [label="Exit function copy" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17 20};
|
|
||||||
16 -> {17} [style=dashed];
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
17 [label="Enter function copy" style="filled" fillcolor=red];
|
||||||
|
18 [label="Enter default value of t"];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter default value of t" style="filled" fillcolor=red];
|
||||||
|
20 [label="Access variable R|/SubClass1.t|"];
|
||||||
|
21 [label="Exit default value of t" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
22 [label="Exit default value of t"];
|
||||||
|
23 [label="Exit function copy" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19 22};
|
||||||
|
18 -> {19} [style=dashed];
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
|
21 -> {22};
|
||||||
|
22 -> {23};
|
||||||
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=red
|
color=red
|
||||||
22 [label="Enter class SubClass2" style="filled" fillcolor=red];
|
24 [label="Enter class SubClass2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter function <init>" style="filled" fillcolor=red];
|
25 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
24 [label="Delegated constructor call: super<R|Sealed|>()" style="filled" fillcolor=yellow];
|
26 [label="Delegated constructor call: super<R|Sealed|>()" style="filled" fillcolor=yellow];
|
||||||
25 [label="Exit function <init>" style="filled" fillcolor=red];
|
27 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
26 [label="Exit class SubClass2" style="filled" fillcolor=red];
|
28 [label="Exit class SubClass2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
22 -> {23} [color=green];
|
24 -> {25} [color=green];
|
||||||
22 -> {26} [style=dotted];
|
24 -> {28} [style=dotted];
|
||||||
22 -> {23} [style=dashed];
|
24 -> {25} [style=dashed];
|
||||||
23 -> {24};
|
25 -> {26};
|
||||||
24 -> {25};
|
26 -> {27};
|
||||||
25 -> {26} [color=green];
|
27 -> {28} [color=green];
|
||||||
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=red
|
|
||||||
27 [label="Enter function copy" style="filled" fillcolor=red];
|
|
||||||
28 [label="Exit function copy" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
27 -> {28};
|
|
||||||
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=red
|
color=red
|
||||||
29 [label="Enter function foo" style="filled" fillcolor=red];
|
29 [label="Enter function copy" style="filled" fillcolor=red];
|
||||||
subgraph cluster_12 {
|
30 [label="Exit function copy" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
30 [label="Enter block"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter when"];
|
|
||||||
32 [label="Access variable R|<local>/p|"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter when branch condition "];
|
|
||||||
34 [label="Exit $subj"];
|
|
||||||
35 [label="Type operator: ($subj$ is R|SubClass1|)"];
|
|
||||||
36 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
37 [label="Enter when branch condition "];
|
|
||||||
38 [label="Exit $subj"];
|
|
||||||
39 [label="Type operator: ($subj$ is R|SubClass2|)"];
|
|
||||||
40 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
41 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
|
||||||
color=blue
|
|
||||||
42 [label="Enter block"];
|
|
||||||
43 [label="Const: String()"];
|
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
|
||||||
45 [label="Exit when branch result"];
|
|
||||||
46 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
47 [label="Enter block"];
|
|
||||||
48 [label="Const: String()"];
|
|
||||||
49 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
50 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
51 [label="Enter block"];
|
|
||||||
52 [label="Access variable R|<local>/it|"];
|
|
||||||
53 [label="Exit block"];
|
|
||||||
}
|
|
||||||
54 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
55 [label="Postponed exit from lambda"];
|
|
||||||
56 [label="Function call: String().R|kotlin/let|<R|kotlin/String|, R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
57 [label="Exit block"];
|
|
||||||
}
|
|
||||||
58 [label="Exit when branch result"];
|
|
||||||
59 [label="Exit when"];
|
|
||||||
}
|
|
||||||
60 [label="Access variable R|<local>/p|"];
|
|
||||||
61 [label="Access variable <Unresolved name: t>#"];
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
62 [label="Enter when"];
|
|
||||||
63 [label="Access variable R|<local>/p|"];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
64 [label="Enter when branch condition "];
|
|
||||||
65 [label="Exit $subj"];
|
|
||||||
66 [label="Type operator: ($subj$ is R|SubClass1|)"];
|
|
||||||
67 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
68 [label="Enter when branch condition "];
|
|
||||||
69 [label="Exit $subj"];
|
|
||||||
70 [label="Type operator: ($subj$ is R|SubClass2|)"];
|
|
||||||
71 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
72 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
73 [label="Enter block"];
|
|
||||||
74 [label="Const: String(2)"];
|
|
||||||
75 [label="Exit block"];
|
|
||||||
}
|
|
||||||
76 [label="Exit when branch result"];
|
|
||||||
77 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
78 [label="Enter block"];
|
|
||||||
79 [label="Access variable R|<local>/p|"];
|
|
||||||
80 [label="Smart cast: R|<local>/p|"];
|
|
||||||
81 [label="Access variable R|/SubClass1.t|"];
|
|
||||||
82 [label="Exit block"];
|
|
||||||
}
|
|
||||||
83 [label="Exit when branch result"];
|
|
||||||
84 [label="Exit when"];
|
|
||||||
}
|
|
||||||
85 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
86 [label="Exit block"];
|
|
||||||
}
|
|
||||||
87 [label="Exit function foo" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=red
|
||||||
|
31 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
32 [label="Enter block"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter when"];
|
||||||
|
34 [label="Access variable R|<local>/p|"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
35 [label="Enter when branch condition "];
|
||||||
|
36 [label="Exit $subj"];
|
||||||
|
37 [label="Type operator: ($subj$ is R|SubClass1|)"];
|
||||||
|
38 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
39 [label="Enter when branch condition "];
|
||||||
|
40 [label="Exit $subj"];
|
||||||
|
41 [label="Type operator: ($subj$ is R|SubClass2|)"];
|
||||||
|
42 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
43 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter block"];
|
||||||
|
45 [label="Const: String()"];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Exit when branch result"];
|
||||||
|
48 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
49 [label="Enter block"];
|
||||||
|
50 [label="Const: String()"];
|
||||||
|
51 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
52 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
53 [label="Enter block"];
|
||||||
|
54 [label="Access variable R|<local>/it|"];
|
||||||
|
55 [label="Exit block"];
|
||||||
|
}
|
||||||
|
56 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
57 [label="Postponed exit from lambda"];
|
||||||
|
58 [label="Function call: String().R|kotlin/let|<R|kotlin/String|, R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
59 [label="Exit block"];
|
||||||
|
}
|
||||||
|
60 [label="Exit when branch result"];
|
||||||
|
61 [label="Exit when"];
|
||||||
|
}
|
||||||
|
62 [label="Access variable R|<local>/p|"];
|
||||||
|
63 [label="Access variable <Unresolved name: t>#"];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
64 [label="Enter when"];
|
||||||
|
65 [label="Access variable R|<local>/p|"];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
66 [label="Enter when branch condition "];
|
||||||
|
67 [label="Exit $subj"];
|
||||||
|
68 [label="Type operator: ($subj$ is R|SubClass1|)"];
|
||||||
|
69 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
70 [label="Enter when branch condition "];
|
||||||
|
71 [label="Exit $subj"];
|
||||||
|
72 [label="Type operator: ($subj$ is R|SubClass2|)"];
|
||||||
|
73 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
74 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
75 [label="Enter block"];
|
||||||
|
76 [label="Const: String(2)"];
|
||||||
|
77 [label="Exit block"];
|
||||||
|
}
|
||||||
|
78 [label="Exit when branch result"];
|
||||||
|
79 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
80 [label="Enter block"];
|
||||||
|
81 [label="Access variable R|<local>/p|"];
|
||||||
|
82 [label="Smart cast: R|<local>/p|"];
|
||||||
|
83 [label="Access variable R|/SubClass1.t|"];
|
||||||
|
84 [label="Exit block"];
|
||||||
|
}
|
||||||
|
85 [label="Exit when branch result"];
|
||||||
|
86 [label="Exit when"];
|
||||||
|
}
|
||||||
|
87 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
88 [label="Exit block"];
|
||||||
|
}
|
||||||
|
89 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37 46};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39 48};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {59};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {61};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50 56};
|
49 -> {50};
|
||||||
49 -> {55} [style=dotted];
|
|
||||||
49 -> {50} [style=dashed];
|
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52 58};
|
||||||
|
51 -> {57} [style=dotted];
|
||||||
|
51 -> {52} [style=dashed];
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56} [color=green];
|
55 -> {56};
|
||||||
55 -> {59} [color=red];
|
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58} [color=green];
|
||||||
|
57 -> {61} [color=red];
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
@@ -243,18 +248,18 @@ digraph lambdaInWhenBranch_kt {
|
|||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68 77};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70 79};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {84};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {86};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
@@ -263,5 +268,7 @@ digraph lambdaInWhenBranch_kt {
|
|||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
|
87 -> {88};
|
||||||
|
88 -> {89};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+35
-28
@@ -5,51 +5,58 @@ digraph smartcastOnLambda_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test" style="filled" fillcolor=red];
|
0 [label="Enter file smartcastOnLambda.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file smartcastOnLambda.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
3 [label="Enter when branch condition "];
|
|
||||||
4 [label="Access variable R|<local>/func|"];
|
|
||||||
5 [label="Const: Null(null)"];
|
|
||||||
6 [label="Equality operator !="];
|
|
||||||
7 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
8 [label="Synthetic else branch"];
|
|
||||||
9 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
5 [label="Enter when branch condition "];
|
||||||
11 [label="Function call: R|<local>/func|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
6 [label="Access variable R|<local>/func|"];
|
||||||
12 [label="Exit block"];
|
7 [label="Const: Null(null)"];
|
||||||
|
8 [label="Equality operator !="];
|
||||||
|
9 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
13 [label="Exit when branch result"];
|
10 [label="Synthetic else branch"];
|
||||||
14 [label="Exit when"];
|
11 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
13 [label="Function call: R|<local>/func|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit when branch result"];
|
||||||
|
16 [label="Exit when"];
|
||||||
}
|
}
|
||||||
15 [label="Exit block"];
|
17 [label="Exit block"];
|
||||||
}
|
}
|
||||||
16 [label="Exit function test" style="filled" fillcolor=red];
|
18 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 9};
|
7 -> {8};
|
||||||
8 -> {14};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 11};
|
||||||
10 -> {11};
|
10 -> {16};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
|
16 -> {17};
|
||||||
|
17 -> {18};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+68
-61
@@ -5,80 +5,85 @@ digraph dataFlowInfoFromWhileCondition_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file dataFlowInfoFromWhileCondition.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file dataFlowInfoFromWhileCondition.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter class B" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
5 [label="Exit class B" style="filled" fillcolor=red];
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5} [color=green];
|
4 -> {5};
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
6 [label="Enter class C" style="filled" fillcolor=red];
|
6 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
7 [label="Exit class C" style="filled" fillcolor=red];
|
7 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
6 -> {7} [color=green];
|
6 -> {7} [color=green];
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function test" style="filled" fillcolor=red];
|
8 [label="Enter class C" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
9 [label="Exit class C" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
9 [label="Enter block"];
|
8 -> {9} [color=green];
|
||||||
10 [label="Const: Null(null)"];
|
|
||||||
11 [label="Variable declaration: lvar a: R|A?|"];
|
subgraph cluster_5 {
|
||||||
subgraph cluster_6 {
|
color=red
|
||||||
color=blue
|
10 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
12 [label="Enter while loop"];
|
subgraph cluster_6 {
|
||||||
subgraph cluster_7 {
|
color=blue
|
||||||
color=blue
|
11 [label="Enter block"];
|
||||||
13 [label="Enter loop condition"];
|
12 [label="Const: Null(null)"];
|
||||||
subgraph cluster_8 {
|
13 [label="Variable declaration: lvar a: R|A?|"];
|
||||||
color=blue
|
subgraph cluster_7 {
|
||||||
14 [label="Enter ||"];
|
color=blue
|
||||||
15 [label="Access variable R|<local>/a|"];
|
14 [label="Enter while loop"];
|
||||||
16 [label="Type operator: (R|<local>/a| is R|B|)"];
|
subgraph cluster_8 {
|
||||||
17 [label="Exit left part of ||"];
|
color=blue
|
||||||
18 [label="Enter right part of ||"];
|
15 [label="Enter loop condition"];
|
||||||
19 [label="Access variable R|<local>/a|"];
|
subgraph cluster_9 {
|
||||||
20 [label="Type operator: (R|<local>/a| is R|C|)"];
|
color=blue
|
||||||
21 [label="Exit ||"];
|
16 [label="Enter ||"];
|
||||||
}
|
17 [label="Access variable R|<local>/a|"];
|
||||||
22 [label="Exit loop condition"];
|
18 [label="Type operator: (R|<local>/a| is R|B|)"];
|
||||||
}
|
19 [label="Exit left part of ||"];
|
||||||
subgraph cluster_9 {
|
20 [label="Enter right part of ||"];
|
||||||
color=blue
|
21 [label="Access variable R|<local>/a|"];
|
||||||
23 [label="Enter loop block"];
|
22 [label="Type operator: (R|<local>/a| is R|C|)"];
|
||||||
subgraph cluster_10 {
|
23 [label="Exit ||"];
|
||||||
color=blue
|
}
|
||||||
24 [label="Enter block"];
|
24 [label="Exit loop condition"];
|
||||||
25 [label="Access variable R|<local>/a|"];
|
}
|
||||||
26 [label="Smart cast: R|<local>/a|"];
|
subgraph cluster_10 {
|
||||||
27 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
28 [label="Exit block"];
|
25 [label="Enter loop block"];
|
||||||
}
|
subgraph cluster_11 {
|
||||||
29 [label="Exit loop block"];
|
color=blue
|
||||||
}
|
26 [label="Enter block"];
|
||||||
30 [label="Exit while loop"];
|
27 [label="Access variable R|<local>/a|"];
|
||||||
}
|
28 [label="Smart cast: R|<local>/a|"];
|
||||||
31 [label="Exit block"];
|
29 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
}
|
30 [label="Exit block"];
|
||||||
32 [label="Exit function test" style="filled" fillcolor=red];
|
}
|
||||||
|
31 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
32 [label="Exit while loop"];
|
||||||
|
}
|
||||||
|
33 [label="Exit block"];
|
||||||
|
}
|
||||||
|
34 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
@@ -86,20 +91,22 @@ digraph dataFlowInfoFromWhileCondition_kt {
|
|||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 21};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20 23};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23 30};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25 32};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {13} [color=green style=dashed];
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {15} [color=green style=dashed];
|
||||||
|
32 -> {33};
|
||||||
|
33 -> {34};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+421
-414
File diff suppressed because it is too large
Load Diff
+113
-106
@@ -5,79 +5,84 @@ digraph multipleCasts_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file multipleCasts.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file multipleCasts.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3};
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter class B" style="filled" fillcolor=red];
|
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
5 [label="Exit class B" style="filled" fillcolor=red];
|
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5} [color=green];
|
4 -> {5};
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
6 [label="Enter function foo" style="filled" fillcolor=red];
|
6 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
7 [label="Exit function foo" style="filled" fillcolor=red];
|
7 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
6 -> {7};
|
6 -> {7} [color=green];
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function getAny" style="filled" fillcolor=red];
|
8 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
9 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Const: Null(null)"];
|
|
||||||
11 [label="Jump: ^getAny Null(null)"];
|
|
||||||
12 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
13 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
14 [label="Exit function getAny" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
|
||||||
11 -> {14};
|
|
||||||
11 -> {12} [style=dotted];
|
|
||||||
12 -> {13} [style=dotted];
|
|
||||||
13 -> {14} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
15 [label="Enter function test_0" style="filled" fillcolor=red];
|
10 [label="Enter function getAny" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter block"];
|
11 [label="Enter block"];
|
||||||
17 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
12 [label="Const: Null(null)"];
|
||||||
18 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
13 [label="Jump: ^getAny Null(null)"];
|
||||||
19 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
14 [label="Stub" style="filled" fillcolor=gray];
|
||||||
20 [label="Variable declaration: lval b: R|kotlin/Any?|"];
|
15 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
21 [label="Access variable R|<local>/a|"];
|
|
||||||
22 [label="Type operator: (R|<local>/a| as R|A|)"];
|
|
||||||
23 [label="Access variable R|<local>/a|"];
|
|
||||||
24 [label="Smart cast: R|<local>/a|"];
|
|
||||||
25 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Access variable R|<local>/b|"];
|
|
||||||
27 [label="Type operator: (R|<local>/b| as R|B|)"];
|
|
||||||
28 [label="Access variable R|<local>/b|"];
|
|
||||||
29 [label="Smart cast: R|<local>/b|"];
|
|
||||||
30 [label="Function call: R|<local>/b|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
31 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
32 [label="Exit function test_0" style="filled" fillcolor=red];
|
16 [label="Exit function getAny" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
10 -> {11};
|
||||||
|
11 -> {12};
|
||||||
|
12 -> {13};
|
||||||
|
13 -> {16};
|
||||||
|
13 -> {14} [style=dotted];
|
||||||
|
14 -> {15} [style=dotted];
|
||||||
|
15 -> {16} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
17 [label="Enter function test_0" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter block"];
|
||||||
|
19 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
||||||
|
20 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
||||||
|
21 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
||||||
|
22 [label="Variable declaration: lval b: R|kotlin/Any?|"];
|
||||||
|
23 [label="Access variable R|<local>/a|"];
|
||||||
|
24 [label="Type operator: (R|<local>/a| as R|A|)"];
|
||||||
|
25 [label="Access variable R|<local>/a|"];
|
||||||
|
26 [label="Smart cast: R|<local>/a|"];
|
||||||
|
27 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Access variable R|<local>/b|"];
|
||||||
|
29 [label="Type operator: (R|<local>/b| as R|B|)"];
|
||||||
|
30 [label="Access variable R|<local>/b|"];
|
||||||
|
31 [label="Smart cast: R|<local>/b|"];
|
||||||
|
32 [label="Function call: R|<local>/b|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
33 [label="Exit block"];
|
||||||
|
}
|
||||||
|
34 [label="Exit function test_0" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
@@ -93,58 +98,58 @@ digraph multipleCasts_kt {
|
|||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
subgraph cluster_8 {
|
|
||||||
color=red
|
|
||||||
33 [label="Enter function test_1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter block"];
|
|
||||||
35 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
|
||||||
36 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
|
||||||
37 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
|
||||||
38 [label="Variable declaration: lval b: R|kotlin/Any?|"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
39 [label="Enter when"];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
40 [label="Enter when branch condition "];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter &&"];
|
|
||||||
42 [label="Access variable R|<local>/a|"];
|
|
||||||
43 [label="Type operator: (R|<local>/a| is R|A|)"];
|
|
||||||
44 [label="Exit left part of &&"];
|
|
||||||
45 [label="Enter right part of &&"];
|
|
||||||
46 [label="Access variable R|<local>/b|"];
|
|
||||||
47 [label="Type operator: (R|<local>/b| is R|B|)"];
|
|
||||||
48 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
49 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
50 [label="Synthetic else branch"];
|
|
||||||
51 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
52 [label="Enter block"];
|
|
||||||
53 [label="Access variable R|<local>/a|"];
|
|
||||||
54 [label="Smart cast: R|<local>/a|"];
|
|
||||||
55 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
56 [label="Access variable R|<local>/b|"];
|
|
||||||
57 [label="Smart cast: R|<local>/b|"];
|
|
||||||
58 [label="Function call: R|<local>/b|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
59 [label="Exit block"];
|
|
||||||
}
|
|
||||||
60 [label="Exit when branch result"];
|
|
||||||
61 [label="Exit when"];
|
|
||||||
}
|
|
||||||
62 [label="Exit block"];
|
|
||||||
}
|
|
||||||
63 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=red
|
||||||
|
35 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter block"];
|
||||||
|
37 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
||||||
|
38 [label="Variable declaration: lval a: R|kotlin/Any?|"];
|
||||||
|
39 [label="Function call: R|/getAny|()" style="filled" fillcolor=yellow];
|
||||||
|
40 [label="Variable declaration: lval b: R|kotlin/Any?|"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter when"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
42 [label="Enter when branch condition "];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
43 [label="Enter &&"];
|
||||||
|
44 [label="Access variable R|<local>/a|"];
|
||||||
|
45 [label="Type operator: (R|<local>/a| is R|A|)"];
|
||||||
|
46 [label="Exit left part of &&"];
|
||||||
|
47 [label="Enter right part of &&"];
|
||||||
|
48 [label="Access variable R|<local>/b|"];
|
||||||
|
49 [label="Type operator: (R|<local>/b| is R|B|)"];
|
||||||
|
50 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
51 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
52 [label="Synthetic else branch"];
|
||||||
|
53 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
54 [label="Enter block"];
|
||||||
|
55 [label="Access variable R|<local>/a|"];
|
||||||
|
56 [label="Smart cast: R|<local>/a|"];
|
||||||
|
57 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
58 [label="Access variable R|<local>/b|"];
|
||||||
|
59 [label="Smart cast: R|<local>/b|"];
|
||||||
|
60 [label="Function call: R|<local>/b|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
61 [label="Exit block"];
|
||||||
|
}
|
||||||
|
62 [label="Exit when branch result"];
|
||||||
|
63 [label="Exit when"];
|
||||||
|
}
|
||||||
|
64 [label="Exit block"];
|
||||||
|
}
|
||||||
|
65 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
@@ -154,15 +159,15 @@ digraph multipleCasts_kt {
|
|||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45 48};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47 50};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50 51};
|
49 -> {50};
|
||||||
50 -> {61};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52 53};
|
||||||
52 -> {53};
|
52 -> {63};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
@@ -173,5 +178,7 @@ digraph multipleCasts_kt {
|
|||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
|
63 -> {64};
|
||||||
|
64 -> {65};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+936
-929
File diff suppressed because it is too large
Load Diff
Vendored
+121
-114
@@ -5,62 +5,69 @@ digraph implicitReceiverAsWhenSubject_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file implicitReceiverAsWhenSubject.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file implicitReceiverAsWhenSubject.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter when"];
|
4 [label="Enter when"];
|
||||||
3 [label="Access variable this@R|/test_1|"];
|
5 [label="Access variable this@R|/test_1|"];
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
4 [label="Enter when branch condition "];
|
|
||||||
5 [label="Exit $subj"];
|
|
||||||
6 [label="Type operator: ($subj$ is R|kotlin/collections/List<*>|)"];
|
|
||||||
7 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter when branch condition "];
|
6 [label="Enter when branch condition "];
|
||||||
9 [label="Exit $subj"];
|
7 [label="Exit $subj"];
|
||||||
10 [label="Type operator: ($subj$ is R|kotlin/String|)"];
|
8 [label="Type operator: ($subj$ is R|kotlin/collections/List<*>|)"];
|
||||||
11 [label="Exit when branch condition"];
|
9 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter when branch condition else"];
|
10 [label="Enter when branch condition "];
|
||||||
|
11 [label="Exit $subj"];
|
||||||
|
12 [label="Type operator: ($subj$ is R|kotlin/String|)"];
|
||||||
13 [label="Exit when branch condition"];
|
13 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
14 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter block"];
|
14 [label="Enter when branch condition else"];
|
||||||
16 [label="Const: Int(0)"];
|
15 [label="Exit when branch condition"];
|
||||||
17 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
18 [label="Exit when branch result"];
|
16 [label="Enter when branch result"];
|
||||||
19 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
20 [label="Enter block"];
|
17 [label="Enter block"];
|
||||||
21 [label="Access variable R|kotlin/String.length|"];
|
18 [label="Const: Int(0)"];
|
||||||
22 [label="Exit block"];
|
19 [label="Exit block"];
|
||||||
}
|
}
|
||||||
23 [label="Exit when branch result"];
|
20 [label="Exit when branch result"];
|
||||||
24 [label="Enter when branch result"];
|
21 [label="Enter when branch result"];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
25 [label="Enter block"];
|
22 [label="Enter block"];
|
||||||
26 [label="Access variable this@R|/test_1|"];
|
23 [label="Access variable R|kotlin/String.length|"];
|
||||||
27 [label="Smart cast: this@R|/test_1|"];
|
24 [label="Exit block"];
|
||||||
28 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
|
||||||
29 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
30 [label="Exit when branch result"];
|
25 [label="Exit when branch result"];
|
||||||
31 [label="Exit when"];
|
26 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
27 [label="Enter block"];
|
||||||
|
28 [label="Access variable this@R|/test_1|"];
|
||||||
|
29 [label="Smart cast: this@R|/test_1|"];
|
||||||
|
30 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
||||||
|
31 [label="Exit block"];
|
||||||
|
}
|
||||||
|
32 [label="Exit when branch result"];
|
||||||
|
33 [label="Exit when"];
|
||||||
}
|
}
|
||||||
32 [label="Jump: ^test_1 when (this@R|/test_1|) {
|
34 [label="Jump: ^test_1 when (this@R|/test_1|) {
|
||||||
($subj$ is R|kotlin/collections/List<*>|) -> {
|
($subj$ is R|kotlin/collections/List<*>|) -> {
|
||||||
this@R|/test_1|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
this@R|/test_1|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
||||||
}
|
}
|
||||||
@@ -72,113 +79,113 @@ digraph implicitReceiverAsWhenSubject_kt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
33 [label="Stub" style="filled" fillcolor=gray];
|
35 [label="Stub" style="filled" fillcolor=gray];
|
||||||
34 [label="Exit block" style="filled" fillcolor=gray];
|
36 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
35 [label="Exit function test_1" style="filled" fillcolor=red];
|
37 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 24};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 26};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12 19};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 21};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {31};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {33};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {31};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {33};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {35};
|
32 -> {33};
|
||||||
32 -> {33} [style=dotted];
|
33 -> {34};
|
||||||
33 -> {34} [style=dotted];
|
34 -> {37};
|
||||||
34 -> {35} [style=dotted];
|
34 -> {35} [style=dotted];
|
||||||
|
35 -> {36} [style=dotted];
|
||||||
|
36 -> {37} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
36 [label="Enter function test_2" style="filled" fillcolor=red];
|
38 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
37 [label="Enter block"];
|
39 [label="Enter block"];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
38 [label="Enter when"];
|
40 [label="Enter when"];
|
||||||
39 [label="Access variable this@R|/test_2|"];
|
41 [label="Access variable this@R|/test_2|"];
|
||||||
40 [label="Variable declaration: lval x: R|kotlin/Any|"];
|
42 [label="Variable declaration: lval x: R|kotlin/Any|"];
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter when branch condition "];
|
|
||||||
42 [label="Exit $subj"];
|
|
||||||
43 [label="Type operator: ($subj$ is R|kotlin/collections/List<*>|)"];
|
|
||||||
44 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
45 [label="Enter when branch condition "];
|
43 [label="Enter when branch condition "];
|
||||||
46 [label="Exit $subj"];
|
44 [label="Exit $subj"];
|
||||||
47 [label="Type operator: ($subj$ is R|kotlin/String|)"];
|
45 [label="Type operator: ($subj$ is R|kotlin/collections/List<*>|)"];
|
||||||
48 [label="Exit when branch condition"];
|
46 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
49 [label="Enter when branch condition else"];
|
47 [label="Enter when branch condition "];
|
||||||
|
48 [label="Exit $subj"];
|
||||||
|
49 [label="Type operator: ($subj$ is R|kotlin/String|)"];
|
||||||
50 [label="Exit when branch condition"];
|
50 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
51 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
52 [label="Enter block"];
|
51 [label="Enter when branch condition else"];
|
||||||
53 [label="Const: Int(0)"];
|
52 [label="Exit when branch condition"];
|
||||||
54 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
55 [label="Exit when branch result"];
|
53 [label="Enter when branch result"];
|
||||||
56 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
57 [label="Enter block"];
|
54 [label="Enter block"];
|
||||||
58 [label="Access variable R|<local>/x|"];
|
55 [label="Const: Int(0)"];
|
||||||
59 [label="Smart cast: R|<local>/x|"];
|
56 [label="Exit block"];
|
||||||
60 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
61 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
62 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
63 [label="Exit when branch result"];
|
57 [label="Exit when branch result"];
|
||||||
64 [label="Enter when branch result"];
|
58 [label="Enter when branch result"];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
65 [label="Enter block"];
|
59 [label="Enter block"];
|
||||||
66 [label="Access variable R|<local>/x|"];
|
60 [label="Access variable R|<local>/x|"];
|
||||||
67 [label="Smart cast: R|<local>/x|"];
|
61 [label="Smart cast: R|<local>/x|"];
|
||||||
68 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
62 [label="Access variable R|kotlin/String.length|"];
|
||||||
69 [label="Access variable this@R|/test_2|"];
|
63 [label="Access variable R|kotlin/String.length|"];
|
||||||
70 [label="Smart cast: this@R|/test_2|"];
|
64 [label="Exit block"];
|
||||||
71 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
|
||||||
72 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
73 [label="Exit when branch result"];
|
65 [label="Exit when branch result"];
|
||||||
74 [label="Exit when"];
|
66 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
67 [label="Enter block"];
|
||||||
|
68 [label="Access variable R|<local>/x|"];
|
||||||
|
69 [label="Smart cast: R|<local>/x|"];
|
||||||
|
70 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
||||||
|
71 [label="Access variable this@R|/test_2|"];
|
||||||
|
72 [label="Smart cast: this@R|/test_2|"];
|
||||||
|
73 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
||||||
|
74 [label="Exit block"];
|
||||||
|
}
|
||||||
|
75 [label="Exit when branch result"];
|
||||||
|
76 [label="Exit when"];
|
||||||
}
|
}
|
||||||
75 [label="Jump: ^test_2 when (lval x: R|kotlin/Any| = this@R|/test_2|) {
|
77 [label="Jump: ^test_2 when (lval x: R|kotlin/Any| = this@R|/test_2|) {
|
||||||
($subj$ is R|kotlin/collections/List<*>|) -> {
|
($subj$ is R|kotlin/collections/List<*>|) -> {
|
||||||
R|<local>/x|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
R|<local>/x|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
||||||
this@R|/test_2|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
this@R|/test_2|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
||||||
@@ -192,41 +199,39 @@ digraph implicitReceiverAsWhenSubject_kt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
76 [label="Stub" style="filled" fillcolor=gray];
|
78 [label="Stub" style="filled" fillcolor=gray];
|
||||||
77 [label="Exit block" style="filled" fillcolor=gray];
|
79 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
78 [label="Exit function test_2" style="filled" fillcolor=red];
|
80 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
36 -> {37};
|
|
||||||
37 -> {38};
|
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45 64};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
46 -> {47 66};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49 56};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51 58};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {74};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {76};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {74};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {76};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
@@ -236,9 +241,11 @@ digraph implicitReceiverAsWhenSubject_kt {
|
|||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {78};
|
75 -> {76};
|
||||||
75 -> {76} [style=dotted];
|
76 -> {77};
|
||||||
76 -> {77} [style=dotted];
|
77 -> {80};
|
||||||
77 -> {78} [style=dotted];
|
77 -> {78} [style=dotted];
|
||||||
|
78 -> {79} [style=dotted];
|
||||||
|
79 -> {80} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+361
-354
@@ -5,151 +5,156 @@ digraph implicitReceivers_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file implicitReceivers.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file implicitReceivers.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
4 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
|
||||||
0 -> {1} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter block"];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
7 [label="Exit block"];
|
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
8 [label="Exit function foo" style="filled" fillcolor=red];
|
6 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {6} [style=dotted];
|
||||||
|
2 -> {3} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
7 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
8 [label="Enter block"];
|
||||||
|
9 [label="Exit block"];
|
||||||
|
}
|
||||||
|
10 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
|
8 -> {9};
|
||||||
|
9 -> {10};
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
9 [label="Enter class B" style="filled" fillcolor=red];
|
11 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter function <init>" style="filled" fillcolor=red];
|
12 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
11 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
13 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
12 [label="Exit function <init>" style="filled" fillcolor=red];
|
14 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
13 [label="Exit class B" style="filled" fillcolor=red];
|
15 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
9 -> {10} [color=green];
|
11 -> {12} [color=green];
|
||||||
9 -> {13} [style=dotted];
|
11 -> {15} [style=dotted];
|
||||||
9 -> {10} [style=dashed];
|
11 -> {12} [style=dashed];
|
||||||
10 -> {11};
|
12 -> {13};
|
||||||
11 -> {12};
|
13 -> {14};
|
||||||
12 -> {13} [color=green];
|
14 -> {15} [color=green];
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
14 [label="Enter function bar" style="filled" fillcolor=red];
|
16 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter block"];
|
17 [label="Enter block"];
|
||||||
16 [label="Exit block"];
|
18 [label="Exit block"];
|
||||||
}
|
}
|
||||||
17 [label="Exit function bar" style="filled" fillcolor=red];
|
19 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
14 -> {15};
|
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
|
17 -> {18};
|
||||||
subgraph cluster_8 {
|
|
||||||
color=red
|
|
||||||
18 [label="Enter function with" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
|
||||||
21 [label="Exit function with" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
|
||||||
20 -> {21};
|
|
||||||
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_9 {
|
||||||
color=red
|
color=red
|
||||||
22 [label="Enter function test_1" style="filled" fillcolor=red];
|
20 [label="Enter function with" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
21 [label="Enter block"];
|
||||||
subgraph cluster_12 {
|
22 [label="Exit block"];
|
||||||
|
}
|
||||||
|
23 [label="Exit function with" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
20 -> {21};
|
||||||
|
21 -> {22};
|
||||||
|
22 -> {23};
|
||||||
|
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=red
|
||||||
|
24 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
24 [label="Enter when"];
|
26 [label="Enter when"];
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
25 [label="Enter when branch condition "];
|
|
||||||
26 [label="Access variable this@R|/test_1|"];
|
|
||||||
27 [label="Type operator: (this@R|/test_1| is R|A|)"];
|
|
||||||
28 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
29 [label="Enter when branch condition else"];
|
27 [label="Enter when branch condition "];
|
||||||
|
28 [label="Access variable this@R|/test_1|"];
|
||||||
|
29 [label="Type operator: (this@R|/test_1| is R|A|)"];
|
||||||
30 [label="Exit when branch condition"];
|
30 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
31 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
32 [label="Enter block"];
|
31 [label="Enter when branch condition else"];
|
||||||
33 [label="Access variable this@R|/test_1|"];
|
32 [label="Exit when branch condition"];
|
||||||
34 [label="Function call: this@R|/test_1|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
|
||||||
35 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
|
||||||
36 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
37 [label="Exit when branch result"];
|
33 [label="Enter when branch result"];
|
||||||
38 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
39 [label="Enter block"];
|
34 [label="Enter block"];
|
||||||
40 [label="Access variable this@R|/test_1|"];
|
35 [label="Access variable this@R|/test_1|"];
|
||||||
41 [label="Smart cast: this@R|/test_1|"];
|
36 [label="Function call: this@R|/test_1|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
42 [label="Function call: this@R|/test_1|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
37 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
43 [label="Function call: this@R|/test_1|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
38 [label="Exit block"];
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
45 [label="Exit when branch result"];
|
39 [label="Exit when branch result"];
|
||||||
46 [label="Exit when"];
|
40 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
41 [label="Enter block"];
|
||||||
|
42 [label="Access variable this@R|/test_1|"];
|
||||||
|
43 [label="Smart cast: this@R|/test_1|"];
|
||||||
|
44 [label="Function call: this@R|/test_1|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
45 [label="Function call: this@R|/test_1|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Exit when branch result"];
|
||||||
|
48 [label="Exit when"];
|
||||||
}
|
}
|
||||||
47 [label="Access variable this@R|/test_1|"];
|
49 [label="Access variable this@R|/test_1|"];
|
||||||
48 [label="Function call: this@R|/test_1|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
50 [label="Function call: this@R|/test_1|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
49 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
51 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
50 [label="Exit block"];
|
52 [label="Exit block"];
|
||||||
}
|
}
|
||||||
51 [label="Exit function test_1" style="filled" fillcolor=red];
|
53 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
22 -> {23};
|
|
||||||
23 -> {24};
|
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29 38};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31 40};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {46};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {48};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
@@ -161,67 +166,67 @@ digraph implicitReceivers_kt {
|
|||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
|
51 -> {52};
|
||||||
|
52 -> {53};
|
||||||
|
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=red
|
color=red
|
||||||
52 [label="Enter function test_2" style="filled" fillcolor=red];
|
54 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
53 [label="Enter block"];
|
55 [label="Enter block"];
|
||||||
subgraph cluster_19 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
54 [label="Enter when"];
|
56 [label="Enter when"];
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
|
||||||
55 [label="Enter when branch condition "];
|
|
||||||
56 [label="Access variable this@R|/test_2|"];
|
|
||||||
57 [label="Type operator: (this@R|/test_2| !is R|A|)"];
|
|
||||||
58 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
59 [label="Enter when branch condition else"];
|
57 [label="Enter when branch condition "];
|
||||||
|
58 [label="Access variable this@R|/test_2|"];
|
||||||
|
59 [label="Type operator: (this@R|/test_2| !is R|A|)"];
|
||||||
60 [label="Exit when branch condition"];
|
60 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
61 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
62 [label="Enter block"];
|
61 [label="Enter when branch condition else"];
|
||||||
63 [label="Access variable this@R|/test_2|"];
|
62 [label="Exit when branch condition"];
|
||||||
64 [label="Smart cast: this@R|/test_2|"];
|
|
||||||
65 [label="Function call: this@R|/test_2|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
66 [label="Function call: this@R|/test_2|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
67 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
68 [label="Exit when branch result"];
|
63 [label="Enter when branch result"];
|
||||||
69 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_23 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
70 [label="Enter block"];
|
64 [label="Enter block"];
|
||||||
71 [label="Access variable this@R|/test_2|"];
|
65 [label="Access variable this@R|/test_2|"];
|
||||||
72 [label="Function call: this@R|/test_2|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
66 [label="Smart cast: this@R|/test_2|"];
|
||||||
73 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
67 [label="Function call: this@R|/test_2|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
74 [label="Exit block"];
|
68 [label="Function call: this@R|/test_2|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
69 [label="Exit block"];
|
||||||
}
|
}
|
||||||
75 [label="Exit when branch result"];
|
70 [label="Exit when branch result"];
|
||||||
76 [label="Exit when"];
|
71 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
72 [label="Enter block"];
|
||||||
|
73 [label="Access variable this@R|/test_2|"];
|
||||||
|
74 [label="Function call: this@R|/test_2|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
|
75 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
|
76 [label="Exit block"];
|
||||||
|
}
|
||||||
|
77 [label="Exit when branch result"];
|
||||||
|
78 [label="Exit when"];
|
||||||
}
|
}
|
||||||
77 [label="Access variable this@R|/test_2|"];
|
79 [label="Access variable this@R|/test_2|"];
|
||||||
78 [label="Function call: this@R|/test_2|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
80 [label="Function call: this@R|/test_2|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
79 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
81 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
80 [label="Exit block"];
|
82 [label="Exit block"];
|
||||||
}
|
}
|
||||||
81 [label="Exit function test_2" style="filled" fillcolor=red];
|
83 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
52 -> {53};
|
|
||||||
53 -> {54};
|
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59 69};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61 71};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
@@ -229,9 +234,9 @@ digraph implicitReceivers_kt {
|
|||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {76};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {78};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
@@ -242,89 +247,89 @@ digraph implicitReceivers_kt {
|
|||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
|
81 -> {82};
|
||||||
subgraph cluster_24 {
|
|
||||||
color=red
|
|
||||||
82 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
83 [label="Enter block"];
|
|
||||||
84 [label="Access variable R|<local>/a|"];
|
|
||||||
85 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
86 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_27 {
|
|
||||||
color=blue
|
|
||||||
87 [label="Enter block"];
|
|
||||||
88 [label="Access variable R|<local>/b|"];
|
|
||||||
89 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_28 {
|
|
||||||
color=blue
|
|
||||||
90 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
91 [label="Enter block"];
|
|
||||||
92 [label="Access variable R|<local>/c|"];
|
|
||||||
93 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
94 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_31 {
|
|
||||||
color=blue
|
|
||||||
95 [label="Enter block"];
|
|
||||||
96 [label="Access variable this@R|special/anonymous|"];
|
|
||||||
97 [label="Type operator: (this@R|special/anonymous| as R|A|)"];
|
|
||||||
98 [label="Access variable this@R|special/anonymous|"];
|
|
||||||
99 [label="Smart cast: this@R|special/anonymous|"];
|
|
||||||
100 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
101 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
102 [label="Exit block"];
|
|
||||||
}
|
|
||||||
103 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
104 [label="Postponed exit from lambda"];
|
|
||||||
105 [label="Function call: R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
106 [label="Access variable this@R|special/anonymous|"];
|
|
||||||
107 [label="Smart cast: this@R|special/anonymous|"];
|
|
||||||
108 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
109 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
110 [label="Exit block"];
|
|
||||||
}
|
|
||||||
111 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
112 [label="Postponed exit from lambda"];
|
|
||||||
113 [label="Function call: R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
114 [label="Exit block"];
|
|
||||||
}
|
|
||||||
115 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
116 [label="Postponed exit from lambda"];
|
|
||||||
117 [label="Function call: R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
118 [label="Exit block"];
|
|
||||||
}
|
|
||||||
119 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=red
|
||||||
|
84 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
85 [label="Enter block"];
|
||||||
|
86 [label="Access variable R|<local>/a|"];
|
||||||
|
87 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
88 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_28 {
|
||||||
|
color=blue
|
||||||
|
89 [label="Enter block"];
|
||||||
|
90 [label="Access variable R|<local>/b|"];
|
||||||
|
91 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_29 {
|
||||||
|
color=blue
|
||||||
|
92 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
93 [label="Enter block"];
|
||||||
|
94 [label="Access variable R|<local>/c|"];
|
||||||
|
95 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
96 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_32 {
|
||||||
|
color=blue
|
||||||
|
97 [label="Enter block"];
|
||||||
|
98 [label="Access variable this@R|special/anonymous|"];
|
||||||
|
99 [label="Type operator: (this@R|special/anonymous| as R|A|)"];
|
||||||
|
100 [label="Access variable this@R|special/anonymous|"];
|
||||||
|
101 [label="Smart cast: this@R|special/anonymous|"];
|
||||||
|
102 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
103 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
104 [label="Exit block"];
|
||||||
|
}
|
||||||
|
105 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
106 [label="Postponed exit from lambda"];
|
||||||
|
107 [label="Function call: R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
108 [label="Access variable this@R|special/anonymous|"];
|
||||||
|
109 [label="Smart cast: this@R|special/anonymous|"];
|
||||||
|
110 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
111 [label="Function call: this@R|special/anonymous|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
112 [label="Exit block"];
|
||||||
|
}
|
||||||
|
113 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
114 [label="Postponed exit from lambda"];
|
||||||
|
115 [label="Function call: R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
116 [label="Exit block"];
|
||||||
|
}
|
||||||
|
117 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
118 [label="Postponed exit from lambda"];
|
||||||
|
119 [label="Function call: R|kotlin/with|<R|kotlin/Any|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
120 [label="Exit block"];
|
||||||
|
}
|
||||||
|
121 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
84 -> {85};
|
84 -> {85};
|
||||||
85 -> {86 117};
|
85 -> {86};
|
||||||
85 -> {116} [style=dotted];
|
|
||||||
85 -> {86} [style=dashed];
|
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88 119};
|
||||||
|
87 -> {118} [style=dotted];
|
||||||
|
87 -> {88} [style=dashed];
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90 113};
|
89 -> {90};
|
||||||
89 -> {112} [style=dotted];
|
|
||||||
89 -> {90} [style=dashed];
|
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92 115};
|
||||||
|
91 -> {114} [style=dotted];
|
||||||
|
91 -> {92} [style=dashed];
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94 105};
|
93 -> {94};
|
||||||
93 -> {104} [style=dotted];
|
|
||||||
93 -> {94} [style=dashed];
|
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96 107};
|
||||||
|
95 -> {106} [style=dotted];
|
||||||
|
95 -> {96} [style=dashed];
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
@@ -341,113 +346,113 @@ digraph implicitReceivers_kt {
|
|||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113} [color=green];
|
112 -> {113};
|
||||||
112 -> {117} [color=red];
|
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115} [color=green];
|
||||||
|
114 -> {119} [color=red];
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
|
119 -> {120};
|
||||||
|
120 -> {121};
|
||||||
|
|
||||||
subgraph cluster_32 {
|
subgraph cluster_33 {
|
||||||
color=red
|
color=red
|
||||||
120 [label="Enter function test_4" style="filled" fillcolor=red];
|
122 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
subgraph cluster_33 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
121 [label="Enter block"];
|
123 [label="Enter block"];
|
||||||
subgraph cluster_34 {
|
subgraph cluster_35 {
|
||||||
color=blue
|
color=blue
|
||||||
122 [label="Enter when"];
|
124 [label="Enter when"];
|
||||||
subgraph cluster_35 {
|
|
||||||
color=blue
|
|
||||||
123 [label="Enter when branch condition "];
|
|
||||||
124 [label="Access variable this@R|/test_4|"];
|
|
||||||
125 [label="Type operator: (this@R|/test_4| !is R|A|)"];
|
|
||||||
126 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_36 {
|
subgraph cluster_36 {
|
||||||
color=blue
|
color=blue
|
||||||
127 [label="Enter when branch condition "];
|
125 [label="Enter when branch condition "];
|
||||||
128 [label="Access variable this@R|/test_4|"];
|
126 [label="Access variable this@R|/test_4|"];
|
||||||
129 [label="Smart cast: this@R|/test_4|"];
|
127 [label="Type operator: (this@R|/test_4| !is R|A|)"];
|
||||||
130 [label="Type operator: (this@R|/test_4| !is R|B|)"];
|
128 [label="Exit when branch condition"];
|
||||||
131 [label="Exit when branch condition"];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_37 {
|
subgraph cluster_37 {
|
||||||
color=blue
|
color=blue
|
||||||
132 [label="Enter when branch condition else"];
|
129 [label="Enter when branch condition "];
|
||||||
|
130 [label="Access variable this@R|/test_4|"];
|
||||||
|
131 [label="Smart cast: this@R|/test_4|"];
|
||||||
|
132 [label="Type operator: (this@R|/test_4| !is R|B|)"];
|
||||||
133 [label="Exit when branch condition"];
|
133 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
134 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_38 {
|
subgraph cluster_38 {
|
||||||
color=blue
|
color=blue
|
||||||
135 [label="Enter block"];
|
134 [label="Enter when branch condition else"];
|
||||||
136 [label="Access variable this@R|/test_4|"];
|
135 [label="Exit when branch condition"];
|
||||||
137 [label="Smart cast: this@R|/test_4|"];
|
|
||||||
138 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
139 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
140 [label="Access variable this@R|/test_4|"];
|
|
||||||
141 [label="Smart cast: this@R|/test_4|"];
|
|
||||||
142 [label="Function call: this@R|/test_4|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
143 [label="Function call: this@R|/test_4|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
144 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
145 [label="Exit when branch result"];
|
136 [label="Enter when branch result"];
|
||||||
146 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_39 {
|
subgraph cluster_39 {
|
||||||
color=blue
|
color=blue
|
||||||
147 [label="Enter block"];
|
137 [label="Enter block"];
|
||||||
148 [label="Access variable this@R|/test_4|"];
|
138 [label="Access variable this@R|/test_4|"];
|
||||||
149 [label="Smart cast: this@R|/test_4|"];
|
139 [label="Smart cast: this@R|/test_4|"];
|
||||||
150 [label="Function call: this@R|/test_4|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
140 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
151 [label="Function call: <Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
141 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
152 [label="Access variable this@R|/test_4|"];
|
142 [label="Access variable this@R|/test_4|"];
|
||||||
153 [label="Smart cast: this@R|/test_4|"];
|
143 [label="Smart cast: this@R|/test_4|"];
|
||||||
154 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
144 [label="Function call: this@R|/test_4|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
155 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
145 [label="Function call: this@R|/test_4|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
156 [label="Exit block"];
|
146 [label="Exit block"];
|
||||||
}
|
}
|
||||||
157 [label="Exit when branch result"];
|
147 [label="Exit when branch result"];
|
||||||
158 [label="Enter when branch result"];
|
148 [label="Enter when branch result"];
|
||||||
subgraph cluster_40 {
|
subgraph cluster_40 {
|
||||||
color=blue
|
color=blue
|
||||||
159 [label="Enter block"];
|
149 [label="Enter block"];
|
||||||
160 [label="Access variable this@R|/test_4|"];
|
150 [label="Access variable this@R|/test_4|"];
|
||||||
161 [label="Function call: this@R|/test_4|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
151 [label="Smart cast: this@R|/test_4|"];
|
||||||
162 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
152 [label="Function call: this@R|/test_4|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
163 [label="Access variable this@R|/test_4|"];
|
153 [label="Function call: <Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
164 [label="Function call: this@R|/test_4|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
154 [label="Access variable this@R|/test_4|"];
|
||||||
165 [label="Function call: <Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
155 [label="Smart cast: this@R|/test_4|"];
|
||||||
166 [label="Exit block"];
|
156 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
157 [label="Function call: this@R|/test_4|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
158 [label="Exit block"];
|
||||||
}
|
}
|
||||||
167 [label="Exit when branch result"];
|
159 [label="Exit when branch result"];
|
||||||
168 [label="Exit when"];
|
160 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_41 {
|
||||||
|
color=blue
|
||||||
|
161 [label="Enter block"];
|
||||||
|
162 [label="Access variable this@R|/test_4|"];
|
||||||
|
163 [label="Function call: this@R|/test_4|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
|
164 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
|
165 [label="Access variable this@R|/test_4|"];
|
||||||
|
166 [label="Function call: this@R|/test_4|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
|
167 [label="Function call: <Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
|
168 [label="Exit block"];
|
||||||
|
}
|
||||||
|
169 [label="Exit when branch result"];
|
||||||
|
170 [label="Exit when"];
|
||||||
}
|
}
|
||||||
169 [label="Access variable this@R|/test_4|"];
|
171 [label="Access variable this@R|/test_4|"];
|
||||||
170 [label="Function call: this@R|/test_4|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
172 [label="Function call: this@R|/test_4|.<Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
171 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
173 [label="Function call: <Unresolved name: foo>#()" style="filled" fillcolor=yellow];
|
||||||
172 [label="Access variable this@R|/test_4|"];
|
174 [label="Access variable this@R|/test_4|"];
|
||||||
173 [label="Function call: this@R|/test_4|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
175 [label="Function call: this@R|/test_4|.<Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
174 [label="Function call: <Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
176 [label="Function call: <Unresolved name: bar>#()" style="filled" fillcolor=yellow];
|
||||||
175 [label="Exit block"];
|
177 [label="Exit block"];
|
||||||
}
|
}
|
||||||
176 [label="Exit function test_4" style="filled" fillcolor=red];
|
178 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
120 -> {121};
|
|
||||||
121 -> {122};
|
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127 158};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {129 160};
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
130 -> {131};
|
130 -> {131};
|
||||||
131 -> {132 146};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134 148};
|
||||||
134 -> {135};
|
134 -> {135};
|
||||||
135 -> {136};
|
135 -> {136};
|
||||||
136 -> {137};
|
136 -> {137};
|
||||||
@@ -459,9 +464,9 @@ digraph implicitReceivers_kt {
|
|||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {144};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {168};
|
145 -> {146};
|
||||||
146 -> {147};
|
146 -> {147};
|
||||||
147 -> {148};
|
147 -> {170};
|
||||||
148 -> {149};
|
148 -> {149};
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
150 -> {151};
|
150 -> {151};
|
||||||
@@ -471,9 +476,9 @@ digraph implicitReceivers_kt {
|
|||||||
154 -> {155};
|
154 -> {155};
|
||||||
155 -> {156};
|
155 -> {156};
|
||||||
156 -> {157};
|
156 -> {157};
|
||||||
157 -> {168};
|
157 -> {158};
|
||||||
158 -> {159};
|
158 -> {159};
|
||||||
159 -> {160};
|
159 -> {170};
|
||||||
160 -> {161};
|
160 -> {161};
|
||||||
161 -> {162};
|
161 -> {162};
|
||||||
162 -> {163};
|
162 -> {163};
|
||||||
@@ -490,62 +495,64 @@ digraph implicitReceivers_kt {
|
|||||||
173 -> {174};
|
173 -> {174};
|
||||||
174 -> {175};
|
174 -> {175};
|
||||||
175 -> {176};
|
175 -> {176};
|
||||||
|
176 -> {177};
|
||||||
|
177 -> {178};
|
||||||
|
|
||||||
subgraph cluster_41 {
|
subgraph cluster_42 {
|
||||||
color=red
|
color=red
|
||||||
177 [label="Enter function test_5" style="filled" fillcolor=red];
|
179 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
subgraph cluster_42 {
|
subgraph cluster_43 {
|
||||||
color=blue
|
color=blue
|
||||||
178 [label="Enter block"];
|
180 [label="Enter block"];
|
||||||
subgraph cluster_43 {
|
subgraph cluster_44 {
|
||||||
color=blue
|
color=blue
|
||||||
179 [label="Enter when"];
|
181 [label="Enter when"];
|
||||||
subgraph cluster_44 {
|
|
||||||
color=blue
|
|
||||||
180 [label="Enter when branch condition "];
|
|
||||||
181 [label="Access variable this@R|/test_5|"];
|
|
||||||
182 [label="Type operator: (this@R|/test_5| is R|kotlin/collections/List<*>|)"];
|
|
||||||
183 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_45 {
|
subgraph cluster_45 {
|
||||||
color=blue
|
color=blue
|
||||||
184 [label="Enter when branch condition "];
|
182 [label="Enter when branch condition "];
|
||||||
185 [label="Access variable this@R|/test_5|"];
|
183 [label="Access variable this@R|/test_5|"];
|
||||||
186 [label="Type operator: (this@R|/test_5| is R|kotlin/String|)"];
|
184 [label="Type operator: (this@R|/test_5| is R|kotlin/collections/List<*>|)"];
|
||||||
187 [label="Exit when branch condition"];
|
185 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
subgraph cluster_46 {
|
subgraph cluster_46 {
|
||||||
color=blue
|
color=blue
|
||||||
188 [label="Enter when branch condition else"];
|
186 [label="Enter when branch condition "];
|
||||||
|
187 [label="Access variable this@R|/test_5|"];
|
||||||
|
188 [label="Type operator: (this@R|/test_5| is R|kotlin/String|)"];
|
||||||
189 [label="Exit when branch condition"];
|
189 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
190 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_47 {
|
subgraph cluster_47 {
|
||||||
color=blue
|
color=blue
|
||||||
191 [label="Enter block"];
|
190 [label="Enter when branch condition else"];
|
||||||
192 [label="Const: Int(0)"];
|
191 [label="Exit when branch condition"];
|
||||||
193 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
194 [label="Exit when branch result"];
|
192 [label="Enter when branch result"];
|
||||||
195 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_48 {
|
subgraph cluster_48 {
|
||||||
color=blue
|
color=blue
|
||||||
196 [label="Enter block"];
|
193 [label="Enter block"];
|
||||||
197 [label="Access variable R|kotlin/String.length|"];
|
194 [label="Const: Int(0)"];
|
||||||
198 [label="Exit block"];
|
195 [label="Exit block"];
|
||||||
}
|
}
|
||||||
199 [label="Exit when branch result"];
|
196 [label="Exit when branch result"];
|
||||||
200 [label="Enter when branch result"];
|
197 [label="Enter when branch result"];
|
||||||
subgraph cluster_49 {
|
subgraph cluster_49 {
|
||||||
color=blue
|
color=blue
|
||||||
201 [label="Enter block"];
|
198 [label="Enter block"];
|
||||||
202 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
199 [label="Access variable R|kotlin/String.length|"];
|
||||||
203 [label="Exit block"];
|
200 [label="Exit block"];
|
||||||
}
|
}
|
||||||
204 [label="Exit when branch result"];
|
201 [label="Exit when branch result"];
|
||||||
205 [label="Exit when"];
|
202 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_50 {
|
||||||
|
color=blue
|
||||||
|
203 [label="Enter block"];
|
||||||
|
204 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
||||||
|
205 [label="Exit block"];
|
||||||
|
}
|
||||||
|
206 [label="Exit when branch result"];
|
||||||
|
207 [label="Exit when"];
|
||||||
}
|
}
|
||||||
206 [label="Jump: ^test_5 when () {
|
208 [label="Jump: ^test_5 when () {
|
||||||
(this@R|/test_5| is R|kotlin/collections/List<*>|) -> {
|
(this@R|/test_5| is R|kotlin/collections/List<*>|) -> {
|
||||||
this@R|/test_5|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
this@R|/test_5|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|
|
||||||
}
|
}
|
||||||
@@ -557,64 +564,62 @@ digraph implicitReceivers_kt {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
207 [label="Stub" style="filled" fillcolor=gray];
|
209 [label="Stub" style="filled" fillcolor=gray];
|
||||||
208 [label="Exit block" style="filled" fillcolor=gray];
|
210 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
209 [label="Exit function test_5" style="filled" fillcolor=red];
|
211 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
177 -> {178};
|
|
||||||
178 -> {179};
|
|
||||||
179 -> {180};
|
179 -> {180};
|
||||||
180 -> {181};
|
180 -> {181};
|
||||||
181 -> {182};
|
181 -> {182};
|
||||||
182 -> {183};
|
182 -> {183};
|
||||||
183 -> {184 200};
|
183 -> {184};
|
||||||
184 -> {185};
|
184 -> {185};
|
||||||
185 -> {186};
|
185 -> {186 202};
|
||||||
186 -> {187};
|
186 -> {187};
|
||||||
187 -> {188 195};
|
187 -> {188};
|
||||||
188 -> {189};
|
188 -> {189};
|
||||||
189 -> {190};
|
189 -> {190 197};
|
||||||
190 -> {191};
|
190 -> {191};
|
||||||
191 -> {192};
|
191 -> {192};
|
||||||
192 -> {193};
|
192 -> {193};
|
||||||
193 -> {194};
|
193 -> {194};
|
||||||
194 -> {205};
|
194 -> {195};
|
||||||
195 -> {196};
|
195 -> {196};
|
||||||
196 -> {197};
|
196 -> {207};
|
||||||
197 -> {198};
|
197 -> {198};
|
||||||
198 -> {199};
|
198 -> {199};
|
||||||
199 -> {205};
|
199 -> {200};
|
||||||
200 -> {201};
|
200 -> {201};
|
||||||
201 -> {202};
|
201 -> {207};
|
||||||
202 -> {203};
|
202 -> {203};
|
||||||
203 -> {204};
|
203 -> {204};
|
||||||
204 -> {205};
|
204 -> {205};
|
||||||
205 -> {206};
|
205 -> {206};
|
||||||
206 -> {209};
|
206 -> {207};
|
||||||
206 -> {207} [style=dotted];
|
207 -> {208};
|
||||||
207 -> {208} [style=dotted];
|
208 -> {211};
|
||||||
208 -> {209} [style=dotted];
|
208 -> {209} [style=dotted];
|
||||||
|
209 -> {210} [style=dotted];
|
||||||
|
210 -> {211} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_50 {
|
subgraph cluster_51 {
|
||||||
color=red
|
color=red
|
||||||
210 [label="Enter function test_6" style="filled" fillcolor=red];
|
212 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
subgraph cluster_51 {
|
subgraph cluster_52 {
|
||||||
color=blue
|
color=blue
|
||||||
211 [label="Enter block"];
|
213 [label="Enter block"];
|
||||||
212 [label="Access variable this@R|/test_6|"];
|
214 [label="Access variable this@R|/test_6|"];
|
||||||
213 [label="Type operator: (this@R|/test_6| as R|kotlin/collections/List<*>|)"];
|
215 [label="Type operator: (this@R|/test_6| as R|kotlin/collections/List<*>|)"];
|
||||||
214 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
216 [label="Access variable R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|"];
|
||||||
215 [label="Access variable this@R|/test_6|"];
|
217 [label="Access variable this@R|/test_6|"];
|
||||||
216 [label="Smart cast: this@R|/test_6|"];
|
218 [label="Smart cast: this@R|/test_6|"];
|
||||||
217 [label="Type operator: (this@R|/test_6| as R|kotlin/String|)"];
|
219 [label="Type operator: (this@R|/test_6| as R|kotlin/String|)"];
|
||||||
218 [label="Access variable R|kotlin/String.length|"];
|
220 [label="Access variable R|kotlin/String.length|"];
|
||||||
219 [label="Exit block"];
|
221 [label="Exit block"];
|
||||||
}
|
}
|
||||||
220 [label="Exit function test_6" style="filled" fillcolor=red];
|
222 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
210 -> {211};
|
|
||||||
211 -> {212};
|
|
||||||
212 -> {213};
|
212 -> {213};
|
||||||
213 -> {214};
|
213 -> {214};
|
||||||
214 -> {215};
|
214 -> {215};
|
||||||
@@ -623,5 +628,7 @@ digraph implicitReceivers_kt {
|
|||||||
217 -> {218};
|
217 -> {218};
|
||||||
218 -> {219};
|
218 -> {219};
|
||||||
219 -> {220};
|
219 -> {220};
|
||||||
|
220 -> {221};
|
||||||
|
221 -> {222};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+62
-55
@@ -5,92 +5,99 @@ digraph thisOfExtensionProperty_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file thisOfExtensionProperty.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
1 [label="Exit file thisOfExtensionProperty.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter class B" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 [label="Exit class B" style="filled" fillcolor=red];
|
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3} [color=green];
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function <getter>" style="filled" fillcolor=red];
|
4 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
5 [label="Enter block"];
|
4 -> {5} [color=green];
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
subgraph cluster_3 {
|
||||||
6 [label="Enter &&"];
|
color=red
|
||||||
7 [label="Access variable this@R|/check_1|"];
|
6 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||||
8 [label="Type operator: (this@R|/check_1| is R|B|)"];
|
subgraph cluster_4 {
|
||||||
9 [label="Exit left part of &&"];
|
color=blue
|
||||||
10 [label="Enter right part of &&"];
|
7 [label="Enter block"];
|
||||||
11 [label="Access variable R|/B.b|"];
|
subgraph cluster_5 {
|
||||||
12 [label="Exit &&"];
|
color=blue
|
||||||
}
|
8 [label="Enter &&"];
|
||||||
13 [label="Jump: ^ (this@R|/check_1| is R|B|) && this@R|/check_1|.R|/B.b|"];
|
9 [label="Access variable this@R|/check_1|"];
|
||||||
14 [label="Stub" style="filled" fillcolor=gray];
|
10 [label="Type operator: (this@R|/check_1| is R|B|)"];
|
||||||
15 [label="Exit block" style="filled" fillcolor=gray];
|
11 [label="Exit left part of &&"];
|
||||||
}
|
12 [label="Enter right part of &&"];
|
||||||
16 [label="Exit function <getter>" style="filled" fillcolor=red];
|
13 [label="Access variable R|/B.b|"];
|
||||||
|
14 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
15 [label="Jump: ^ (this@R|/check_1| is R|B|) && this@R|/check_1|.R|/B.b|"];
|
||||||
|
16 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
17 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
18 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5};
|
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10 12};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12 14};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {16};
|
13 -> {14};
|
||||||
13 -> {14} [style=dotted];
|
14 -> {15};
|
||||||
14 -> {15} [style=dotted];
|
15 -> {18};
|
||||||
15 -> {16} [style=dotted];
|
15 -> {16} [style=dotted];
|
||||||
|
16 -> {17} [style=dotted];
|
||||||
|
17 -> {18} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=red
|
color=red
|
||||||
17 [label="Enter function <getter>" style="filled" fillcolor=red];
|
19 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
18 [label="Enter block"];
|
20 [label="Enter block"];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
19 [label="Enter &&"];
|
21 [label="Enter &&"];
|
||||||
20 [label="Access variable this@R|/check_2|"];
|
22 [label="Access variable this@R|/check_2|"];
|
||||||
21 [label="Type operator: (this@R|/check_2| is R|B|)"];
|
23 [label="Type operator: (this@R|/check_2| is R|B|)"];
|
||||||
22 [label="Exit left part of &&"];
|
24 [label="Exit left part of &&"];
|
||||||
23 [label="Enter right part of &&"];
|
25 [label="Enter right part of &&"];
|
||||||
24 [label="Access variable this@R|/check_2|"];
|
26 [label="Access variable this@R|/check_2|"];
|
||||||
25 [label="Smart cast: this@R|/check_2|"];
|
27 [label="Smart cast: this@R|/check_2|"];
|
||||||
26 [label="Access variable R|/B.b|"];
|
28 [label="Access variable R|/B.b|"];
|
||||||
27 [label="Exit &&"];
|
29 [label="Exit &&"];
|
||||||
}
|
}
|
||||||
28 [label="Jump: ^ (this@R|/check_2| is R|B|) && this@R|/check_2|.R|/B.b|"];
|
30 [label="Jump: ^ (this@R|/check_2| is R|B|) && this@R|/check_2|.R|/B.b|"];
|
||||||
29 [label="Stub" style="filled" fillcolor=gray];
|
31 [label="Stub" style="filled" fillcolor=gray];
|
||||||
30 [label="Exit block" style="filled" fillcolor=gray];
|
32 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
31 [label="Exit function <getter>" style="filled" fillcolor=red];
|
33 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
17 -> {18};
|
|
||||||
18 -> {19};
|
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23 27};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25 29};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {31};
|
28 -> {29};
|
||||||
28 -> {29} [style=dotted];
|
29 -> {30};
|
||||||
29 -> {30} [style=dotted];
|
30 -> {33};
|
||||||
30 -> {31} [style=dotted];
|
30 -> {31} [style=dotted];
|
||||||
|
31 -> {32} [style=dotted];
|
||||||
|
32 -> {33} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+283
-276
@@ -5,110 +5,115 @@ digraph assignSafeCall_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file assignSafeCall.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file assignSafeCall.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
2 [label="Const: Int(1)"];
|
|
||||||
3 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
4 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
5 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
6 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {7} [style=dotted];
|
|
||||||
0 -> {1 4} [style=dashed];
|
subgraph cluster_1 {
|
||||||
1 -> {2};
|
color=red
|
||||||
2 -> {3};
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
3 -> {4} [color=green];
|
subgraph cluster_2 {
|
||||||
|
color=blue
|
||||||
|
3 [label="Enter property" style="filled" fillcolor=red];
|
||||||
|
4 [label="Const: Int(1)"];
|
||||||
|
5 [label="Exit property" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=blue
|
||||||
|
6 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
7 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
8 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
9 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {9} [style=dotted];
|
||||||
|
2 -> {3 6} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6} [color=green];
|
||||||
6 -> {7} [color=green];
|
6 -> {7};
|
||||||
|
7 -> {8};
|
||||||
|
8 -> {9} [color=green];
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function foo" style="filled" fillcolor=red];
|
10 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter block"];
|
11 [label="Enter block"];
|
||||||
10 [label="Const: Int(1)"];
|
12 [label="Const: Int(1)"];
|
||||||
11 [label="Jump: ^foo Int(1)"];
|
13 [label="Jump: ^foo Int(1)"];
|
||||||
12 [label="Stub" style="filled" fillcolor=gray];
|
14 [label="Stub" style="filled" fillcolor=gray];
|
||||||
13 [label="Exit block" style="filled" fillcolor=gray];
|
15 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
14 [label="Exit function foo" style="filled" fillcolor=red];
|
16 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {14};
|
11 -> {12};
|
||||||
11 -> {12} [style=dotted];
|
12 -> {13};
|
||||||
12 -> {13} [style=dotted];
|
13 -> {16};
|
||||||
13 -> {14} [style=dotted];
|
13 -> {14} [style=dotted];
|
||||||
|
14 -> {15} [style=dotted];
|
||||||
|
15 -> {16} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=red
|
color=red
|
||||||
15 [label="Enter function bar" style="filled" fillcolor=red];
|
17 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter block"];
|
18 [label="Enter block"];
|
||||||
17 [label="Exit block"];
|
19 [label="Exit block"];
|
||||||
}
|
}
|
||||||
18 [label="Exit function bar" style="filled" fillcolor=red];
|
20 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
|
18 -> {19};
|
||||||
|
19 -> {20};
|
||||||
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=red
|
color=red
|
||||||
19 [label="Enter function test_1" style="filled" fillcolor=red];
|
21 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
20 [label="Enter block"];
|
22 [label="Enter block"];
|
||||||
21 [label="Access variable R|<local>/a|"];
|
23 [label="Access variable R|<local>/a|"];
|
||||||
22 [label="Enter safe call"];
|
24 [label="Enter safe call"];
|
||||||
23 [label="Access variable R|/A.x|"];
|
25 [label="Access variable R|/A.x|"];
|
||||||
24 [label="Exit safe call"];
|
26 [label="Exit safe call"];
|
||||||
25 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
27 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
26 [label="Enter when"];
|
28 [label="Enter when"];
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
27 [label="Enter when branch condition "];
|
|
||||||
28 [label="Access variable R|<local>/x|"];
|
|
||||||
29 [label="Const: Null(null)"];
|
|
||||||
30 [label="Equality operator !="];
|
|
||||||
31 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
32 [label="Synthetic else branch"];
|
|
||||||
33 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
34 [label="Enter block"];
|
29 [label="Enter when branch condition "];
|
||||||
35 [label="Access variable R|<local>/a|"];
|
30 [label="Access variable R|<local>/x|"];
|
||||||
36 [label="Smart cast: R|<local>/a|"];
|
31 [label="Const: Null(null)"];
|
||||||
37 [label="Function call: R|<local>/a|.R|/A.bar|()" style="filled" fillcolor=yellow];
|
32 [label="Equality operator !="];
|
||||||
38 [label="Exit block"];
|
33 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
39 [label="Exit when branch result"];
|
34 [label="Synthetic else branch"];
|
||||||
40 [label="Exit when"];
|
35 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter block"];
|
||||||
|
37 [label="Access variable R|<local>/a|"];
|
||||||
|
38 [label="Smart cast: R|<local>/a|"];
|
||||||
|
39 [label="Function call: R|<local>/a|.R|/A.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Exit when branch result"];
|
||||||
|
42 [label="Exit when"];
|
||||||
}
|
}
|
||||||
41 [label="Exit block"];
|
43 [label="Exit block"];
|
||||||
}
|
}
|
||||||
42 [label="Exit function test_1" style="filled" fillcolor=red];
|
44 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
19 -> {20};
|
21 -> {22};
|
||||||
20 -> {21};
|
|
||||||
21 -> {22 24};
|
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24 26};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
@@ -116,10 +121,10 @@ digraph assignSafeCall_kt {
|
|||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32 33};
|
31 -> {32};
|
||||||
32 -> {40};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34 35};
|
||||||
34 -> {35};
|
34 -> {42};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
@@ -127,51 +132,51 @@ digraph assignSafeCall_kt {
|
|||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
|
42 -> {43};
|
||||||
|
43 -> {44};
|
||||||
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_13 {
|
||||||
color=red
|
color=red
|
||||||
43 [label="Enter function test_2" style="filled" fillcolor=red];
|
45 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_13 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
44 [label="Enter block"];
|
46 [label="Enter block"];
|
||||||
45 [label="Access variable R|<local>/a|"];
|
47 [label="Access variable R|<local>/a|"];
|
||||||
46 [label="Enter safe call"];
|
48 [label="Enter safe call"];
|
||||||
47 [label="Function call: $subj$.R|/A.foo|()" style="filled" fillcolor=yellow];
|
49 [label="Function call: $subj$.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
48 [label="Exit safe call"];
|
50 [label="Exit safe call"];
|
||||||
49 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
51 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
||||||
subgraph cluster_14 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
50 [label="Enter when"];
|
52 [label="Enter when"];
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
51 [label="Enter when branch condition "];
|
|
||||||
52 [label="Access variable R|<local>/x|"];
|
|
||||||
53 [label="Const: Null(null)"];
|
|
||||||
54 [label="Equality operator !="];
|
|
||||||
55 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
56 [label="Synthetic else branch"];
|
|
||||||
57 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
58 [label="Enter block"];
|
53 [label="Enter when branch condition "];
|
||||||
59 [label="Access variable R|<local>/a|"];
|
54 [label="Access variable R|<local>/x|"];
|
||||||
60 [label="Smart cast: R|<local>/a|"];
|
55 [label="Const: Null(null)"];
|
||||||
61 [label="Function call: R|<local>/a|.R|/A.bar|()" style="filled" fillcolor=yellow];
|
56 [label="Equality operator !="];
|
||||||
62 [label="Exit block"];
|
57 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
63 [label="Exit when branch result"];
|
58 [label="Synthetic else branch"];
|
||||||
64 [label="Exit when"];
|
59 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=blue
|
||||||
|
60 [label="Enter block"];
|
||||||
|
61 [label="Access variable R|<local>/a|"];
|
||||||
|
62 [label="Smart cast: R|<local>/a|"];
|
||||||
|
63 [label="Function call: R|<local>/a|.R|/A.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
64 [label="Exit block"];
|
||||||
|
}
|
||||||
|
65 [label="Exit when branch result"];
|
||||||
|
66 [label="Exit when"];
|
||||||
}
|
}
|
||||||
65 [label="Exit block"];
|
67 [label="Exit block"];
|
||||||
}
|
}
|
||||||
66 [label="Exit function test_2" style="filled" fillcolor=red];
|
68 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
43 -> {44};
|
45 -> {46};
|
||||||
44 -> {45};
|
|
||||||
45 -> {46 48};
|
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48 50};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
@@ -179,10 +184,10 @@ digraph assignSafeCall_kt {
|
|||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56 57};
|
55 -> {56};
|
||||||
56 -> {64};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58 59};
|
||||||
58 -> {59};
|
58 -> {66};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
@@ -190,42 +195,42 @@ digraph assignSafeCall_kt {
|
|||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
|
66 -> {67};
|
||||||
subgraph cluster_17 {
|
|
||||||
color=red
|
|
||||||
67 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
68 [label="Enter block"];
|
|
||||||
69 [label="Access variable R|<local>/x|"];
|
|
||||||
70 [label="Type operator: (R|<local>/x| as? R|A|)"];
|
|
||||||
71 [label="Exit lhs of ?:"];
|
|
||||||
72 [label="Enter rhs of ?:"];
|
|
||||||
73 [label="Jump: ^test_3 Unit"];
|
|
||||||
74 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
75 [label="Lhs of ?: is not null"];
|
|
||||||
76 [label="Exit ?:"];
|
|
||||||
77 [label="Variable declaration: lval a: R|A|"];
|
|
||||||
78 [label="Access variable R|<local>/a|"];
|
|
||||||
79 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
80 [label="Access variable R|<local>/x|"];
|
|
||||||
81 [label="Smart cast: R|<local>/x|"];
|
|
||||||
82 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
83 [label="Exit block"];
|
|
||||||
}
|
|
||||||
84 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=red
|
||||||
|
69 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
70 [label="Enter block"];
|
||||||
|
71 [label="Access variable R|<local>/x|"];
|
||||||
|
72 [label="Type operator: (R|<local>/x| as? R|A|)"];
|
||||||
|
73 [label="Exit lhs of ?:"];
|
||||||
|
74 [label="Enter rhs of ?:"];
|
||||||
|
75 [label="Jump: ^test_3 Unit"];
|
||||||
|
76 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
77 [label="Lhs of ?: is not null"];
|
||||||
|
78 [label="Exit ?:"];
|
||||||
|
79 [label="Variable declaration: lval a: R|A|"];
|
||||||
|
80 [label="Access variable R|<local>/a|"];
|
||||||
|
81 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
82 [label="Access variable R|<local>/x|"];
|
||||||
|
83 [label="Smart cast: R|<local>/x|"];
|
||||||
|
84 [label="Function call: R|<local>/x|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
85 [label="Exit block"];
|
||||||
|
}
|
||||||
|
86 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72 75};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {84};
|
73 -> {74 77};
|
||||||
73 -> {74} [style=dotted];
|
74 -> {75};
|
||||||
74 -> {76} [style=dotted];
|
75 -> {86};
|
||||||
75 -> {76};
|
75 -> {76} [style=dotted];
|
||||||
76 -> {77};
|
76 -> {78} [style=dotted];
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
@@ -233,72 +238,72 @@ digraph assignSafeCall_kt {
|
|||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
|
84 -> {85};
|
||||||
subgraph cluster_19 {
|
85 -> {86};
|
||||||
color=red
|
|
||||||
85 [label="Enter class B" style="filled" fillcolor=red];
|
|
||||||
86 [label="Exit class B" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
85 -> {86} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=red
|
color=red
|
||||||
87 [label="Enter function foo" style="filled" fillcolor=red];
|
87 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
88 [label="Exit function foo" style="filled" fillcolor=red];
|
88 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
87 -> {88};
|
87 -> {88} [color=green];
|
||||||
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=red
|
color=red
|
||||||
89 [label="Enter function bar" style="filled" fillcolor=red];
|
89 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
90 [label="Exit function bar" style="filled" fillcolor=red];
|
90 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=red
|
color=red
|
||||||
91 [label="Enter function test_1" style="filled" fillcolor=red];
|
91 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_23 {
|
92 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
92 [label="Enter block"];
|
|
||||||
93 [label="Access variable R|<local>/a|"];
|
|
||||||
94 [label="Enter safe call"];
|
|
||||||
95 [label="Access variable R|/B.x|"];
|
|
||||||
96 [label="Exit safe call"];
|
|
||||||
97 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
98 [label="Enter when"];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
99 [label="Enter when branch condition "];
|
|
||||||
100 [label="Access variable R|<local>/x|"];
|
|
||||||
101 [label="Const: Null(null)"];
|
|
||||||
102 [label="Equality operator !="];
|
|
||||||
103 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
104 [label="Synthetic else branch"];
|
|
||||||
105 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
106 [label="Enter block"];
|
|
||||||
107 [label="Access variable R|<local>/a|"];
|
|
||||||
108 [label="Smart cast: R|<local>/a|"];
|
|
||||||
109 [label="Function call: R|<local>/a|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
|
||||||
110 [label="Exit block"];
|
|
||||||
}
|
|
||||||
111 [label="Exit when branch result"];
|
|
||||||
112 [label="Exit when"];
|
|
||||||
}
|
|
||||||
113 [label="Exit block"];
|
|
||||||
}
|
|
||||||
114 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
|
||||||
93 -> {94 96};
|
subgraph cluster_23 {
|
||||||
|
color=red
|
||||||
|
93 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
94 [label="Enter block"];
|
||||||
|
95 [label="Access variable R|<local>/a|"];
|
||||||
|
96 [label="Enter safe call"];
|
||||||
|
97 [label="Access variable R|/B.x|"];
|
||||||
|
98 [label="Exit safe call"];
|
||||||
|
99 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
100 [label="Enter when"];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
101 [label="Enter when branch condition "];
|
||||||
|
102 [label="Access variable R|<local>/x|"];
|
||||||
|
103 [label="Const: Null(null)"];
|
||||||
|
104 [label="Equality operator !="];
|
||||||
|
105 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
106 [label="Synthetic else branch"];
|
||||||
|
107 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
108 [label="Enter block"];
|
||||||
|
109 [label="Access variable R|<local>/a|"];
|
||||||
|
110 [label="Smart cast: R|<local>/a|"];
|
||||||
|
111 [label="Function call: R|<local>/a|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
112 [label="Exit block"];
|
||||||
|
}
|
||||||
|
113 [label="Exit when branch result"];
|
||||||
|
114 [label="Exit when"];
|
||||||
|
}
|
||||||
|
115 [label="Exit block"];
|
||||||
|
}
|
||||||
|
116 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
93 -> {94};
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96 98};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
@@ -306,10 +311,10 @@ digraph assignSafeCall_kt {
|
|||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104 105};
|
103 -> {104};
|
||||||
104 -> {112};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {106 107};
|
||||||
106 -> {107};
|
106 -> {114};
|
||||||
107 -> {108};
|
107 -> {108};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
@@ -317,51 +322,51 @@ digraph assignSafeCall_kt {
|
|||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {114};
|
113 -> {114};
|
||||||
|
114 -> {115};
|
||||||
|
115 -> {116};
|
||||||
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=red
|
color=red
|
||||||
115 [label="Enter function test_2" style="filled" fillcolor=red];
|
117 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
116 [label="Enter block"];
|
118 [label="Enter block"];
|
||||||
117 [label="Access variable R|<local>/a|"];
|
119 [label="Access variable R|<local>/a|"];
|
||||||
118 [label="Enter safe call"];
|
120 [label="Enter safe call"];
|
||||||
119 [label="Function call: $subj$.R|/B.foo|()" style="filled" fillcolor=yellow];
|
121 [label="Function call: $subj$.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||||
120 [label="Exit safe call"];
|
122 [label="Exit safe call"];
|
||||||
121 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
123 [label="Variable declaration: lval x: R|kotlin/Int?|"];
|
||||||
subgraph cluster_29 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
122 [label="Enter when"];
|
124 [label="Enter when"];
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
123 [label="Enter when branch condition "];
|
|
||||||
124 [label="Access variable R|<local>/x|"];
|
|
||||||
125 [label="Const: Null(null)"];
|
|
||||||
126 [label="Equality operator !="];
|
|
||||||
127 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
128 [label="Synthetic else branch"];
|
|
||||||
129 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_31 {
|
subgraph cluster_31 {
|
||||||
color=blue
|
color=blue
|
||||||
130 [label="Enter block"];
|
125 [label="Enter when branch condition "];
|
||||||
131 [label="Access variable R|<local>/a|"];
|
126 [label="Access variable R|<local>/x|"];
|
||||||
132 [label="Smart cast: R|<local>/a|"];
|
127 [label="Const: Null(null)"];
|
||||||
133 [label="Function call: R|<local>/a|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
128 [label="Equality operator !="];
|
||||||
134 [label="Exit block"];
|
129 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
135 [label="Exit when branch result"];
|
130 [label="Synthetic else branch"];
|
||||||
136 [label="Exit when"];
|
131 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_32 {
|
||||||
|
color=blue
|
||||||
|
132 [label="Enter block"];
|
||||||
|
133 [label="Access variable R|<local>/a|"];
|
||||||
|
134 [label="Smart cast: R|<local>/a|"];
|
||||||
|
135 [label="Function call: R|<local>/a|.R|/B.bar|()" style="filled" fillcolor=yellow];
|
||||||
|
136 [label="Exit block"];
|
||||||
|
}
|
||||||
|
137 [label="Exit when branch result"];
|
||||||
|
138 [label="Exit when"];
|
||||||
}
|
}
|
||||||
137 [label="Exit block"];
|
139 [label="Exit block"];
|
||||||
}
|
}
|
||||||
138 [label="Exit function test_2" style="filled" fillcolor=red];
|
140 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
115 -> {116};
|
117 -> {118};
|
||||||
116 -> {117};
|
|
||||||
117 -> {118 120};
|
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120 122};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
@@ -369,10 +374,10 @@ digraph assignSafeCall_kt {
|
|||||||
124 -> {125};
|
124 -> {125};
|
||||||
125 -> {126};
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128 129};
|
127 -> {128};
|
||||||
128 -> {136};
|
128 -> {129};
|
||||||
129 -> {130};
|
129 -> {130 131};
|
||||||
130 -> {131};
|
130 -> {138};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
132 -> {133};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
@@ -380,42 +385,42 @@ digraph assignSafeCall_kt {
|
|||||||
135 -> {136};
|
135 -> {136};
|
||||||
136 -> {137};
|
136 -> {137};
|
||||||
137 -> {138};
|
137 -> {138};
|
||||||
|
138 -> {139};
|
||||||
subgraph cluster_32 {
|
|
||||||
color=red
|
|
||||||
139 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
140 [label="Enter block"];
|
|
||||||
141 [label="Access variable R|<local>/x|"];
|
|
||||||
142 [label="Type operator: (R|<local>/x| as? R|B|)"];
|
|
||||||
143 [label="Exit lhs of ?:"];
|
|
||||||
144 [label="Enter rhs of ?:"];
|
|
||||||
145 [label="Jump: ^test_3 Unit"];
|
|
||||||
146 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
147 [label="Lhs of ?: is not null"];
|
|
||||||
148 [label="Exit ?:"];
|
|
||||||
149 [label="Variable declaration: lval a: R|B|"];
|
|
||||||
150 [label="Access variable R|<local>/a|"];
|
|
||||||
151 [label="Function call: R|<local>/a|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
152 [label="Access variable R|<local>/x|"];
|
|
||||||
153 [label="Smart cast: R|<local>/x|"];
|
|
||||||
154 [label="Function call: R|<local>/x|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
155 [label="Exit block"];
|
|
||||||
}
|
|
||||||
156 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
139 -> {140};
|
139 -> {140};
|
||||||
140 -> {141};
|
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=red
|
||||||
|
141 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_34 {
|
||||||
|
color=blue
|
||||||
|
142 [label="Enter block"];
|
||||||
|
143 [label="Access variable R|<local>/x|"];
|
||||||
|
144 [label="Type operator: (R|<local>/x| as? R|B|)"];
|
||||||
|
145 [label="Exit lhs of ?:"];
|
||||||
|
146 [label="Enter rhs of ?:"];
|
||||||
|
147 [label="Jump: ^test_3 Unit"];
|
||||||
|
148 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
149 [label="Lhs of ?: is not null"];
|
||||||
|
150 [label="Exit ?:"];
|
||||||
|
151 [label="Variable declaration: lval a: R|B|"];
|
||||||
|
152 [label="Access variable R|<local>/a|"];
|
||||||
|
153 [label="Function call: R|<local>/a|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
154 [label="Access variable R|<local>/x|"];
|
||||||
|
155 [label="Smart cast: R|<local>/x|"];
|
||||||
|
156 [label="Function call: R|<local>/x|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
157 [label="Exit block"];
|
||||||
|
}
|
||||||
|
158 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
141 -> {142};
|
141 -> {142};
|
||||||
142 -> {143};
|
142 -> {143};
|
||||||
143 -> {144 147};
|
143 -> {144};
|
||||||
144 -> {145};
|
144 -> {145};
|
||||||
145 -> {156};
|
145 -> {146 149};
|
||||||
145 -> {146} [style=dotted];
|
146 -> {147};
|
||||||
146 -> {148} [style=dotted];
|
147 -> {158};
|
||||||
147 -> {148};
|
147 -> {148} [style=dotted];
|
||||||
148 -> {149};
|
148 -> {150} [style=dotted];
|
||||||
149 -> {150};
|
149 -> {150};
|
||||||
150 -> {151};
|
150 -> {151};
|
||||||
151 -> {152};
|
151 -> {152};
|
||||||
@@ -423,5 +428,7 @@ digraph assignSafeCall_kt {
|
|||||||
153 -> {154};
|
153 -> {154};
|
||||||
154 -> {155};
|
154 -> {155};
|
||||||
155 -> {156};
|
155 -> {156};
|
||||||
|
156 -> {157};
|
||||||
|
157 -> {158};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+192
-185
@@ -5,96 +5,101 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function check" style="filled" fillcolor=red];
|
0 [label="Enter file safeCallAndEqualityToBool.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file safeCallAndEqualityToBool.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
2 [label="Const: Boolean(true)"];
|
|
||||||
3 [label="Jump: ^check Boolean(true)"];
|
|
||||||
4 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
5 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
6 [label="Exit function check" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {6};
|
|
||||||
3 -> {4} [style=dotted];
|
|
||||||
4 -> {5} [style=dotted];
|
|
||||||
5 -> {6} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
7 [label="Enter function test_1" style="filled" fillcolor=red];
|
2 [label="Enter function check" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
4 [label="Const: Boolean(true)"];
|
||||||
|
5 [label="Jump: ^check Boolean(true)"];
|
||||||
|
6 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
8 [label="Exit function check" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {8};
|
||||||
|
5 -> {6} [style=dotted];
|
||||||
|
6 -> {7} [style=dotted];
|
||||||
|
7 -> {8} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter when"];
|
11 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
10 [label="Enter when branch condition "];
|
|
||||||
11 [label="Access variable R|<local>/s|"];
|
|
||||||
12 [label="Enter safe call"];
|
|
||||||
13 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
|
||||||
14 [label="Exit safe call"];
|
|
||||||
15 [label="Const: Boolean(true)"];
|
|
||||||
16 [label="Equality operator =="];
|
|
||||||
17 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
18 [label="Enter when branch condition else"];
|
12 [label="Enter when branch condition "];
|
||||||
|
13 [label="Access variable R|<local>/s|"];
|
||||||
|
14 [label="Enter safe call"];
|
||||||
|
15 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
||||||
|
16 [label="Exit safe call"];
|
||||||
|
17 [label="Const: Boolean(true)"];
|
||||||
|
18 [label="Equality operator =="];
|
||||||
19 [label="Exit when branch condition"];
|
19 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
20 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
21 [label="Enter block"];
|
20 [label="Enter when branch condition else"];
|
||||||
22 [label="Access variable R|<local>/s|"];
|
21 [label="Exit when branch condition"];
|
||||||
23 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
|
||||||
24 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
25 [label="Exit when branch result"];
|
22 [label="Enter when branch result"];
|
||||||
26 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter block"];
|
23 [label="Enter block"];
|
||||||
28 [label="Access variable R|<local>/s|"];
|
24 [label="Access variable R|<local>/s|"];
|
||||||
29 [label="Smart cast: R|<local>/s|"];
|
25 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||||
30 [label="Access variable R|kotlin/String.length|"];
|
26 [label="Exit block"];
|
||||||
31 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
32 [label="Exit when branch result"];
|
27 [label="Exit when branch result"];
|
||||||
33 [label="Exit when"];
|
28 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
29 [label="Enter block"];
|
||||||
|
30 [label="Access variable R|<local>/s|"];
|
||||||
|
31 [label="Smart cast: R|<local>/s|"];
|
||||||
|
32 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
33 [label="Exit block"];
|
||||||
|
}
|
||||||
|
34 [label="Exit when branch result"];
|
||||||
|
35 [label="Exit when"];
|
||||||
}
|
}
|
||||||
34 [label="Exit block"];
|
36 [label="Exit block"];
|
||||||
}
|
}
|
||||||
35 [label="Exit function test_1" style="filled" fillcolor=red];
|
37 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
7 -> {8};
|
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12 14};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 16};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 26};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20 28};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {33};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {35};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
@@ -102,78 +107,78 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
|
35 -> {36};
|
||||||
|
36 -> {37};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
36 [label="Enter function test_2" style="filled" fillcolor=red];
|
38 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
37 [label="Enter block"];
|
39 [label="Enter block"];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
38 [label="Enter when"];
|
40 [label="Enter when"];
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
39 [label="Enter when branch condition "];
|
|
||||||
40 [label="Access variable R|<local>/s|"];
|
|
||||||
41 [label="Enter safe call"];
|
|
||||||
42 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
|
||||||
43 [label="Exit safe call"];
|
|
||||||
44 [label="Const: Boolean(false)"];
|
|
||||||
45 [label="Equality operator =="];
|
|
||||||
46 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
47 [label="Enter when branch condition else"];
|
41 [label="Enter when branch condition "];
|
||||||
|
42 [label="Access variable R|<local>/s|"];
|
||||||
|
43 [label="Enter safe call"];
|
||||||
|
44 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
||||||
|
45 [label="Exit safe call"];
|
||||||
|
46 [label="Const: Boolean(false)"];
|
||||||
|
47 [label="Equality operator =="];
|
||||||
48 [label="Exit when branch condition"];
|
48 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
49 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
50 [label="Enter block"];
|
49 [label="Enter when branch condition else"];
|
||||||
51 [label="Access variable R|<local>/s|"];
|
50 [label="Exit when branch condition"];
|
||||||
52 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
|
||||||
53 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
54 [label="Exit when branch result"];
|
51 [label="Enter when branch result"];
|
||||||
55 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
56 [label="Enter block"];
|
52 [label="Enter block"];
|
||||||
57 [label="Access variable R|<local>/s|"];
|
53 [label="Access variable R|<local>/s|"];
|
||||||
58 [label="Smart cast: R|<local>/s|"];
|
54 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||||
59 [label="Access variable R|kotlin/String.length|"];
|
55 [label="Exit block"];
|
||||||
60 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
61 [label="Exit when branch result"];
|
56 [label="Exit when branch result"];
|
||||||
62 [label="Exit when"];
|
57 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
58 [label="Enter block"];
|
||||||
|
59 [label="Access variable R|<local>/s|"];
|
||||||
|
60 [label="Smart cast: R|<local>/s|"];
|
||||||
|
61 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
62 [label="Exit block"];
|
||||||
|
}
|
||||||
|
63 [label="Exit when branch result"];
|
||||||
|
64 [label="Exit when"];
|
||||||
}
|
}
|
||||||
63 [label="Exit block"];
|
65 [label="Exit block"];
|
||||||
}
|
}
|
||||||
64 [label="Exit function test_2" style="filled" fillcolor=red];
|
66 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
36 -> {37};
|
|
||||||
37 -> {38};
|
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41 43};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43 45};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47 55};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49 57};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {62};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {64};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
@@ -181,163 +186,165 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
|
64 -> {65};
|
||||||
|
65 -> {66};
|
||||||
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=red
|
color=red
|
||||||
65 [label="Enter function test_3" style="filled" fillcolor=red];
|
67 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
66 [label="Enter block"];
|
68 [label="Enter block"];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
67 [label="Enter when"];
|
69 [label="Enter when"];
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
68 [label="Enter when branch condition "];
|
|
||||||
69 [label="Access variable R|<local>/s|"];
|
|
||||||
70 [label="Enter safe call"];
|
|
||||||
71 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
|
||||||
72 [label="Exit safe call"];
|
|
||||||
73 [label="Const: Boolean(true)"];
|
|
||||||
74 [label="Equality operator !="];
|
|
||||||
75 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
76 [label="Enter when branch condition else"];
|
70 [label="Enter when branch condition "];
|
||||||
|
71 [label="Access variable R|<local>/s|"];
|
||||||
|
72 [label="Enter safe call"];
|
||||||
|
73 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
||||||
|
74 [label="Exit safe call"];
|
||||||
|
75 [label="Const: Boolean(true)"];
|
||||||
|
76 [label="Equality operator !="];
|
||||||
77 [label="Exit when branch condition"];
|
77 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
78 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
79 [label="Enter block"];
|
78 [label="Enter when branch condition else"];
|
||||||
80 [label="Access variable R|<local>/s|"];
|
79 [label="Exit when branch condition"];
|
||||||
81 [label="Smart cast: R|<local>/s|"];
|
|
||||||
82 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
83 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
84 [label="Exit when branch result"];
|
80 [label="Enter when branch result"];
|
||||||
85 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
86 [label="Enter block"];
|
81 [label="Enter block"];
|
||||||
87 [label="Access variable R|<local>/s|"];
|
82 [label="Access variable R|<local>/s|"];
|
||||||
88 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
83 [label="Smart cast: R|<local>/s|"];
|
||||||
89 [label="Exit block"];
|
84 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
85 [label="Exit block"];
|
||||||
}
|
}
|
||||||
90 [label="Exit when branch result"];
|
86 [label="Exit when branch result"];
|
||||||
91 [label="Exit when"];
|
87 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
88 [label="Enter block"];
|
||||||
|
89 [label="Access variable R|<local>/s|"];
|
||||||
|
90 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||||
|
91 [label="Exit block"];
|
||||||
|
}
|
||||||
|
92 [label="Exit when branch result"];
|
||||||
|
93 [label="Exit when"];
|
||||||
}
|
}
|
||||||
92 [label="Exit block"];
|
94 [label="Exit block"];
|
||||||
}
|
}
|
||||||
93 [label="Exit function test_3" style="filled" fillcolor=red];
|
95 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
65 -> {66};
|
|
||||||
66 -> {67};
|
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70 72};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72};
|
71 -> {72 74};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76 85};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78 87};
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {91};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {93};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {92};
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
|
93 -> {94};
|
||||||
|
94 -> {95};
|
||||||
|
|
||||||
subgraph cluster_23 {
|
subgraph cluster_24 {
|
||||||
color=red
|
color=red
|
||||||
94 [label="Enter function test_4" style="filled" fillcolor=red];
|
96 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
subgraph cluster_24 {
|
subgraph cluster_25 {
|
||||||
color=blue
|
color=blue
|
||||||
95 [label="Enter block"];
|
97 [label="Enter block"];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
96 [label="Enter when"];
|
98 [label="Enter when"];
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
97 [label="Enter when branch condition "];
|
|
||||||
98 [label="Access variable R|<local>/s|"];
|
|
||||||
99 [label="Enter safe call"];
|
|
||||||
100 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
|
||||||
101 [label="Exit safe call"];
|
|
||||||
102 [label="Const: Boolean(false)"];
|
|
||||||
103 [label="Equality operator !="];
|
|
||||||
104 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
105 [label="Enter when branch condition else"];
|
99 [label="Enter when branch condition "];
|
||||||
|
100 [label="Access variable R|<local>/s|"];
|
||||||
|
101 [label="Enter safe call"];
|
||||||
|
102 [label="Function call: $subj$.R|/check|()" style="filled" fillcolor=yellow];
|
||||||
|
103 [label="Exit safe call"];
|
||||||
|
104 [label="Const: Boolean(false)"];
|
||||||
|
105 [label="Equality operator !="];
|
||||||
106 [label="Exit when branch condition"];
|
106 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
107 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_28 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
108 [label="Enter block"];
|
107 [label="Enter when branch condition else"];
|
||||||
109 [label="Access variable R|<local>/s|"];
|
108 [label="Exit when branch condition"];
|
||||||
110 [label="Smart cast: R|<local>/s|"];
|
|
||||||
111 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
112 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
113 [label="Exit when branch result"];
|
109 [label="Enter when branch result"];
|
||||||
114 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_29 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
115 [label="Enter block"];
|
110 [label="Enter block"];
|
||||||
116 [label="Access variable R|<local>/s|"];
|
111 [label="Access variable R|<local>/s|"];
|
||||||
117 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
112 [label="Smart cast: R|<local>/s|"];
|
||||||
118 [label="Exit block"];
|
113 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
114 [label="Exit block"];
|
||||||
}
|
}
|
||||||
119 [label="Exit when branch result"];
|
115 [label="Exit when branch result"];
|
||||||
120 [label="Exit when"];
|
116 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
117 [label="Enter block"];
|
||||||
|
118 [label="Access variable R|<local>/s|"];
|
||||||
|
119 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||||
|
120 [label="Exit block"];
|
||||||
|
}
|
||||||
|
121 [label="Exit when branch result"];
|
||||||
|
122 [label="Exit when"];
|
||||||
}
|
}
|
||||||
121 [label="Exit block"];
|
123 [label="Exit block"];
|
||||||
}
|
}
|
||||||
122 [label="Exit function test_4" style="filled" fillcolor=red];
|
124 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
94 -> {95};
|
|
||||||
95 -> {96};
|
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99 101};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {101};
|
100 -> {101 103};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105 114};
|
104 -> {105};
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107 116};
|
||||||
107 -> {108};
|
107 -> {108};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113};
|
112 -> {113};
|
||||||
113 -> {120};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
115 -> {116};
|
115 -> {122};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
|
122 -> {123};
|
||||||
|
123 -> {124};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+225
-218
@@ -5,65 +5,70 @@ digraph safeCalls_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
0 [label="Enter file safeCalls.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file safeCalls.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Const: String()"];
|
|
||||||
3 [label="Jump: ^foo String()"];
|
subgraph cluster_1 {
|
||||||
4 [label="Stub" style="filled" fillcolor=gray];
|
color=red
|
||||||
5 [label="Exit block" style="filled" fillcolor=gray];
|
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
6 [label="Exit function foo" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
3 [label="Enter block"];
|
||||||
|
4 [label="Const: String()"];
|
||||||
|
5 [label="Jump: ^foo String()"];
|
||||||
|
6 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
8 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {6};
|
3 -> {4};
|
||||||
3 -> {4} [style=dotted];
|
4 -> {5};
|
||||||
4 -> {5} [style=dotted];
|
5 -> {8};
|
||||||
5 -> {6} [style=dotted];
|
5 -> {6} [style=dotted];
|
||||||
|
6 -> {7} [style=dotted];
|
||||||
|
7 -> {8} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
7 [label="Enter function let" style="filled" fillcolor=red];
|
9 [label="Enter function let" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter block"];
|
10 [label="Enter block"];
|
||||||
9 [label="Exit block"];
|
11 [label="Exit block"];
|
||||||
}
|
}
|
||||||
10 [label="Exit function let" style="filled" fillcolor=red];
|
12 [label="Exit function let" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
7 -> {8};
|
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
|
10 -> {11};
|
||||||
subgraph cluster_4 {
|
|
||||||
color=red
|
|
||||||
11 [label="Enter function test" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
12 [label="Enter block"];
|
|
||||||
13 [label="Access variable R|<local>/x|"];
|
|
||||||
14 [label="Enter safe call"];
|
|
||||||
15 [label="Access variable R|<local>/x|"];
|
|
||||||
16 [label="Smart cast: R|<local>/x|"];
|
|
||||||
17 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
18 [label="Const: Int(1)"];
|
|
||||||
19 [label="Equality operator =="];
|
|
||||||
20 [label="Function call: $subj$.R|/foo|(...)" style="filled" fillcolor=yellow];
|
|
||||||
21 [label="Exit safe call"];
|
|
||||||
22 [label="Access variable R|<local>/x|"];
|
|
||||||
23 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
|
||||||
24 [label="Exit block"];
|
|
||||||
}
|
|
||||||
25 [label="Exit function test" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
|
||||||
13 -> {14 21};
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
13 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
14 [label="Enter block"];
|
||||||
|
15 [label="Access variable R|<local>/x|"];
|
||||||
|
16 [label="Enter safe call"];
|
||||||
|
17 [label="Access variable R|<local>/x|"];
|
||||||
|
18 [label="Smart cast: R|<local>/x|"];
|
||||||
|
19 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
20 [label="Const: Int(1)"];
|
||||||
|
21 [label="Equality operator =="];
|
||||||
|
22 [label="Function call: $subj$.R|/foo|(...)" style="filled" fillcolor=yellow];
|
||||||
|
23 [label="Exit safe call"];
|
||||||
|
24 [label="Access variable R|<local>/x|"];
|
||||||
|
25 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||||
|
26 [label="Exit block"];
|
||||||
|
}
|
||||||
|
27 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16 23};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
@@ -73,246 +78,248 @@ digraph safeCalls_kt {
|
|||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
|
25 -> {26};
|
||||||
subgraph cluster_6 {
|
26 -> {27};
|
||||||
color=red
|
|
||||||
26 [label="Enter class A" style="filled" fillcolor=red];
|
|
||||||
27 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
26 -> {27} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
28 [label="Enter function bar" style="filled" fillcolor=red];
|
28 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
29 [label="Exit function bar" style="filled" fillcolor=red];
|
29 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
28 -> {29};
|
28 -> {29} [color=green];
|
||||||
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=red
|
color=red
|
||||||
30 [label="Enter function bool" style="filled" fillcolor=red];
|
30 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
31 [label="Exit function bool" style="filled" fillcolor=red];
|
31 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=red
|
color=red
|
||||||
32 [label="Enter function id" style="filled" fillcolor=red];
|
32 [label="Enter function bool" style="filled" fillcolor=red];
|
||||||
33 [label="Exit function id" style="filled" fillcolor=red];
|
33 [label="Exit function bool" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
34 [label="Enter function test_2" style="filled" fillcolor=red];
|
34 [label="Enter function id" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
35 [label="Exit function id" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
35 [label="Enter block"];
|
|
||||||
36 [label="Access variable R|<local>/x|"];
|
|
||||||
37 [label="Type operator: (R|<local>/x| as? R|A|)"];
|
|
||||||
38 [label="Enter safe call"];
|
|
||||||
39 [label="Access variable R|<local>/x|"];
|
|
||||||
40 [label="Smart cast: R|<local>/x|"];
|
|
||||||
41 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
|
||||||
42 [label="Exit safe call"];
|
|
||||||
43 [label="Exit block"];
|
|
||||||
}
|
|
||||||
44 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=red
|
||||||
|
36 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
37 [label="Enter block"];
|
||||||
|
38 [label="Access variable R|<local>/x|"];
|
||||||
|
39 [label="Type operator: (R|<local>/x| as? R|A|)"];
|
||||||
|
40 [label="Enter safe call"];
|
||||||
|
41 [label="Access variable R|<local>/x|"];
|
||||||
|
42 [label="Smart cast: R|<local>/x|"];
|
||||||
|
43 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Exit safe call"];
|
||||||
|
45 [label="Exit block"];
|
||||||
|
}
|
||||||
|
46 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38 42};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40 44};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
|
44 -> {45};
|
||||||
subgraph cluster_12 {
|
|
||||||
color=red
|
|
||||||
45 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
46 [label="Enter block"];
|
|
||||||
47 [label="Access variable R|<local>/x|"];
|
|
||||||
48 [label="Type operator: (R|<local>/x| as? R|A|)"];
|
|
||||||
49 [label="Enter safe call"];
|
|
||||||
50 [label="Access variable R|<local>/x|"];
|
|
||||||
51 [label="Smart cast: R|<local>/x|"];
|
|
||||||
52 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
|
||||||
53 [label="Enter safe call"];
|
|
||||||
54 [label="Access variable R|<local>/x|"];
|
|
||||||
55 [label="Smart cast: R|<local>/x|"];
|
|
||||||
56 [label="Function call: R|<local>/x|.R|/A.bool|()" style="filled" fillcolor=yellow];
|
|
||||||
57 [label="Function call: $subj$.R|/foo|(...)" style="filled" fillcolor=yellow];
|
|
||||||
58 [label="Enter safe call"];
|
|
||||||
59 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
60 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
61 [label="Enter block"];
|
|
||||||
62 [label="Access variable R|<local>/x|"];
|
|
||||||
63 [label="Smart cast: R|<local>/x|"];
|
|
||||||
64 [label="Function call: R|<local>/x|.R|/A.bool|()" style="filled" fillcolor=yellow];
|
|
||||||
65 [label="Exit block"];
|
|
||||||
}
|
|
||||||
66 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
67 [label="Postponed exit from lambda"];
|
|
||||||
68 [label="Function call: $subj$.R|/let|(...)" style="filled" fillcolor=yellow];
|
|
||||||
69 [label="Exit safe call"];
|
|
||||||
70 [label="Exit safe call"];
|
|
||||||
71 [label="Exit safe call"];
|
|
||||||
72 [label="Access variable R|<local>/x|"];
|
|
||||||
73 [label="Function call: R|<local>/x|.<Unresolved name: bool>#()" style="filled" fillcolor=yellow];
|
|
||||||
74 [label="Exit block"];
|
|
||||||
}
|
|
||||||
75 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47};
|
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=red
|
||||||
|
47 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
48 [label="Enter block"];
|
||||||
|
49 [label="Access variable R|<local>/x|"];
|
||||||
|
50 [label="Type operator: (R|<local>/x| as? R|A|)"];
|
||||||
|
51 [label="Enter safe call"];
|
||||||
|
52 [label="Access variable R|<local>/x|"];
|
||||||
|
53 [label="Smart cast: R|<local>/x|"];
|
||||||
|
54 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||||
|
55 [label="Enter safe call"];
|
||||||
|
56 [label="Access variable R|<local>/x|"];
|
||||||
|
57 [label="Smart cast: R|<local>/x|"];
|
||||||
|
58 [label="Function call: R|<local>/x|.R|/A.bool|()" style="filled" fillcolor=yellow];
|
||||||
|
59 [label="Function call: $subj$.R|/foo|(...)" style="filled" fillcolor=yellow];
|
||||||
|
60 [label="Enter safe call"];
|
||||||
|
61 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
62 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
63 [label="Enter block"];
|
||||||
|
64 [label="Access variable R|<local>/x|"];
|
||||||
|
65 [label="Smart cast: R|<local>/x|"];
|
||||||
|
66 [label="Function call: R|<local>/x|.R|/A.bool|()" style="filled" fillcolor=yellow];
|
||||||
|
67 [label="Exit block"];
|
||||||
|
}
|
||||||
|
68 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
69 [label="Postponed exit from lambda"];
|
||||||
|
70 [label="Function call: $subj$.R|/let|(...)" style="filled" fillcolor=yellow];
|
||||||
|
71 [label="Exit safe call"];
|
||||||
|
72 [label="Exit safe call"];
|
||||||
|
73 [label="Exit safe call"];
|
||||||
|
74 [label="Access variable R|<local>/x|"];
|
||||||
|
75 [label="Function call: R|<local>/x|.<Unresolved name: bool>#()" style="filled" fillcolor=yellow];
|
||||||
|
76 [label="Exit block"];
|
||||||
|
}
|
||||||
|
77 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49 69};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51 71};
|
||||||
51 -> {52};
|
51 -> {52};
|
||||||
52 -> {53 69};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55 71};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58 70};
|
57 -> {58};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60 67 68};
|
59 -> {60 72};
|
||||||
59 -> {60} [style=dashed];
|
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62 69 70};
|
||||||
|
61 -> {62} [style=dashed];
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {71};
|
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {73};
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
|
75 -> {76};
|
||||||
subgraph cluster_16 {
|
|
||||||
color=red
|
|
||||||
76 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
77 [label="Enter block"];
|
|
||||||
78 [label="Access variable R|<local>/x|"];
|
|
||||||
79 [label="Enter safe call"];
|
|
||||||
80 [label="Function call: $subj$.R|/A.id|()" style="filled" fillcolor=yellow];
|
|
||||||
81 [label="Enter safe call"];
|
|
||||||
82 [label="Function call: $subj$.R|/A.bool|()" style="filled" fillcolor=yellow];
|
|
||||||
83 [label="Exit safe call"];
|
|
||||||
84 [label="Exit safe call"];
|
|
||||||
85 [label="Access variable R|<local>/x|"];
|
|
||||||
86 [label="Function call: R|<local>/x|.R|/A.id<Inapplicable(UNSAFE_CALL): /A.id>#|()" style="filled" fillcolor=yellow];
|
|
||||||
87 [label="Exit block"];
|
|
||||||
}
|
|
||||||
88 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
|
||||||
78 -> {79 83};
|
subgraph cluster_17 {
|
||||||
|
color=red
|
||||||
|
78 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
79 [label="Enter block"];
|
||||||
|
80 [label="Access variable R|<local>/x|"];
|
||||||
|
81 [label="Enter safe call"];
|
||||||
|
82 [label="Function call: $subj$.R|/A.id|()" style="filled" fillcolor=yellow];
|
||||||
|
83 [label="Enter safe call"];
|
||||||
|
84 [label="Function call: $subj$.R|/A.bool|()" style="filled" fillcolor=yellow];
|
||||||
|
85 [label="Exit safe call"];
|
||||||
|
86 [label="Exit safe call"];
|
||||||
|
87 [label="Access variable R|<local>/x|"];
|
||||||
|
88 [label="Function call: R|<local>/x|.R|/A.id<Inapplicable(UNSAFE_CALL): /A.id>#|()" style="filled" fillcolor=yellow];
|
||||||
|
89 [label="Exit block"];
|
||||||
|
}
|
||||||
|
90 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81 83};
|
80 -> {81 85};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {84};
|
82 -> {83 85};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {86};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
|
88 -> {89};
|
||||||
subgraph cluster_18 {
|
|
||||||
color=red
|
|
||||||
89 [label="Enter function boo" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
90 [label="Enter block"];
|
|
||||||
91 [label="Exit block"];
|
|
||||||
}
|
|
||||||
92 [label="Exit function boo" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
90 -> {91};
|
|
||||||
91 -> {92};
|
|
||||||
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_19 {
|
||||||
color=red
|
color=red
|
||||||
93 [label="Enter function test_5" style="filled" fillcolor=red];
|
91 [label="Enter function boo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
94 [label="Enter block"];
|
92 [label="Enter block"];
|
||||||
95 [label="Access variable R|<local>/x|"];
|
93 [label="Exit block"];
|
||||||
96 [label="Enter safe call"];
|
|
||||||
97 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_22 {
|
|
||||||
color=blue
|
|
||||||
98 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
99 [label="Enter block"];
|
|
||||||
100 [label="Jump: ^test_5 Unit"];
|
|
||||||
101 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
102 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
103 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
104 [label="Postponed exit from lambda" style="filled" fillcolor=gray];
|
|
||||||
105 [label="Function call: $subj$.R|kotlin/let|<R|A|, R|kotlin/Nothing|>(...)" style="filled" fillcolor=gray];
|
|
||||||
106 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
107 [label="Enter safe call" style="filled" fillcolor=gray];
|
|
||||||
108 [label="Access variable R|<local>/x|" style="filled" fillcolor=gray];
|
|
||||||
109 [label="Smart cast: R|<local>/x|" style="filled" fillcolor=gray];
|
|
||||||
110 [label="Function call: R|<local>/x|.R|/A.bool|()" style="filled" fillcolor=gray];
|
|
||||||
111 [label="Function call: $subj$.R|/boo|(...)" style="filled" fillcolor=gray];
|
|
||||||
112 [label="Exit safe call"];
|
|
||||||
113 [label="Exit safe call"];
|
|
||||||
114 [label="Access variable R|<local>/x|"];
|
|
||||||
115 [label="Function call: R|<local>/x|.R|/A.id<Inapplicable(UNSAFE_CALL): /A.id>#|()" style="filled" fillcolor=yellow];
|
|
||||||
116 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
117 [label="Exit function test_5" style="filled" fillcolor=red];
|
94 [label="Exit function boo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
|
91 -> {92};
|
||||||
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95};
|
|
||||||
95 -> {96 112};
|
subgraph cluster_21 {
|
||||||
|
color=red
|
||||||
|
95 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
96 [label="Enter block"];
|
||||||
|
97 [label="Access variable R|<local>/x|"];
|
||||||
|
98 [label="Enter safe call"];
|
||||||
|
99 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
100 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
101 [label="Enter block"];
|
||||||
|
102 [label="Jump: ^test_5 Unit"];
|
||||||
|
103 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
104 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
105 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
106 [label="Postponed exit from lambda" style="filled" fillcolor=gray];
|
||||||
|
107 [label="Function call: $subj$.R|kotlin/let|<R|A|, R|kotlin/Nothing|>(...)" style="filled" fillcolor=gray];
|
||||||
|
108 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
109 [label="Enter safe call" style="filled" fillcolor=gray];
|
||||||
|
110 [label="Access variable R|<local>/x|" style="filled" fillcolor=gray];
|
||||||
|
111 [label="Smart cast: R|<local>/x|" style="filled" fillcolor=gray];
|
||||||
|
112 [label="Function call: R|<local>/x|.R|/A.bool|()" style="filled" fillcolor=gray];
|
||||||
|
113 [label="Function call: $subj$.R|/boo|(...)" style="filled" fillcolor=gray];
|
||||||
|
114 [label="Exit safe call"];
|
||||||
|
115 [label="Exit safe call"];
|
||||||
|
116 [label="Access variable R|<local>/x|"];
|
||||||
|
117 [label="Function call: R|<local>/x|.R|/A.id<Inapplicable(UNSAFE_CALL): /A.id>#|()" style="filled" fillcolor=yellow];
|
||||||
|
118 [label="Exit block"];
|
||||||
|
}
|
||||||
|
119 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98 114};
|
||||||
97 -> {104 105} [style=dotted];
|
|
||||||
97 -> {98} [style=dashed];
|
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {117};
|
99 -> {106 107} [style=dotted];
|
||||||
100 -> {101} [style=dotted];
|
99 -> {100} [style=dashed];
|
||||||
101 -> {102} [style=dotted];
|
100 -> {101};
|
||||||
|
101 -> {102};
|
||||||
|
102 -> {119};
|
||||||
102 -> {103} [style=dotted];
|
102 -> {103} [style=dotted];
|
||||||
103 -> {104} [style=dotted];
|
103 -> {104} [style=dotted];
|
||||||
104 -> {105} [style=dotted];
|
104 -> {105} [style=dotted];
|
||||||
105 -> {106} [style=dotted];
|
105 -> {106} [style=dotted];
|
||||||
106 -> {107 112} [style=dotted];
|
106 -> {107} [style=dotted];
|
||||||
107 -> {108} [style=dotted];
|
107 -> {108} [style=dotted];
|
||||||
108 -> {109} [style=dotted];
|
108 -> {109 114} [style=dotted];
|
||||||
109 -> {110} [style=dotted];
|
109 -> {110} [style=dotted];
|
||||||
110 -> {111} [style=dotted];
|
110 -> {111} [style=dotted];
|
||||||
111 -> {113} [style=dotted];
|
111 -> {112} [style=dotted];
|
||||||
112 -> {113};
|
112 -> {113} [style=dotted];
|
||||||
113 -> {114};
|
113 -> {115} [style=dotted];
|
||||||
114 -> {115};
|
114 -> {115};
|
||||||
115 -> {116};
|
115 -> {116};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
|
117 -> {118};
|
||||||
|
118 -> {119};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+61
-54
@@ -5,87 +5,94 @@ digraph smartCastInInit_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class I" style="filled" fillcolor=red];
|
0 [label="Enter file smartCastInInit.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class I" style="filled" fillcolor=red];
|
1 [label="Exit file smartCastInInit.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter class S" style="filled" fillcolor=red];
|
2 [label="Enter class I" style="filled" fillcolor=red];
|
||||||
3 [label="Exit class S" style="filled" fillcolor=red];
|
3 [label="Exit class I" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3} [color=green];
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function foo" style="filled" fillcolor=red];
|
4 [label="Enter class S" style="filled" fillcolor=red];
|
||||||
5 [label="Exit function foo" style="filled" fillcolor=red];
|
5 [label="Exit class S" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5};
|
4 -> {5} [color=green];
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
6 [label="Enter function s" style="filled" fillcolor=red];
|
6 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
7 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
7 [label="Enter block"];
|
|
||||||
8 [label="Function call: R|kotlin/TODO|()" style="filled" fillcolor=yellow];
|
|
||||||
9 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
10 [label="Jump: ^s R|kotlin/TODO|()" style="filled" fillcolor=gray];
|
|
||||||
11 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
12 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
13 [label="Exit function s" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
|
||||||
8 -> {9} [style=dotted];
|
|
||||||
9 -> {10} [style=dotted];
|
|
||||||
10 -> {11 13} [style=dotted];
|
|
||||||
11 -> {12} [style=dotted];
|
|
||||||
12 -> {13} [style=dotted];
|
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
14 [label="Enter class Main" style="filled" fillcolor=red];
|
8 [label="Enter function s" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter init block" style="filled" fillcolor=red];
|
9 [label="Enter block"];
|
||||||
subgraph cluster_7 {
|
10 [label="Function call: R|kotlin/TODO|()" style="filled" fillcolor=yellow];
|
||||||
color=blue
|
11 [label="Stub" style="filled" fillcolor=gray];
|
||||||
16 [label="Enter block"];
|
12 [label="Jump: ^s R|kotlin/TODO|()" style="filled" fillcolor=gray];
|
||||||
17 [label="Function call: R|/s|()" style="filled" fillcolor=yellow];
|
13 [label="Stub" style="filled" fillcolor=gray];
|
||||||
18 [label="Assignment: R|/Main.x|"];
|
14 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
19 [label="Access variable R|/Main.x|"];
|
|
||||||
20 [label="Smart cast: this@R|/Main|.R|/Main.x|"];
|
|
||||||
21 [label="Function call: this@R|/Main|.R|/Main.x|.R|/S.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Exit init block" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_8 {
|
15 [label="Exit function s" style="filled" fillcolor=gray];
|
||||||
color=blue
|
|
||||||
24 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
25 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
27 [label="Exit class Main" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
14 -> {15} [color=green];
|
8 -> {9};
|
||||||
14 -> {27} [style=dotted];
|
9 -> {10};
|
||||||
14 -> {15 24} [style=dashed];
|
10 -> {11} [style=dotted];
|
||||||
15 -> {16};
|
11 -> {12} [style=dotted];
|
||||||
16 -> {17};
|
12 -> {13 15} [style=dotted];
|
||||||
|
13 -> {14} [style=dotted];
|
||||||
|
14 -> {15} [style=dotted];
|
||||||
|
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter class Main" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
18 [label="Enter block"];
|
||||||
|
19 [label="Function call: R|/s|()" style="filled" fillcolor=yellow];
|
||||||
|
20 [label="Assignment: R|/Main.x|"];
|
||||||
|
21 [label="Access variable R|/Main.x|"];
|
||||||
|
22 [label="Smart cast: this@R|/Main|.R|/Main.x|"];
|
||||||
|
23 [label="Function call: this@R|/Main|.R|/Main.x|.R|/S.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit init block" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
27 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
29 [label="Exit class Main" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
16 -> {17} [color=green];
|
||||||
|
16 -> {29} [style=dotted];
|
||||||
|
16 -> {17 26} [style=dashed];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24} [color=green];
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26} [color=green];
|
||||||
26 -> {27} [color=green];
|
26 -> {27};
|
||||||
|
27 -> {28};
|
||||||
|
28 -> {29} [color=green];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+156
-149
@@ -5,127 +5,134 @@ digraph smartcastInByClause_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file smartcastInByClause.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file smartcastInByClause.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter property" style="filled" fillcolor=red];
|
0 -> {1} [color=green];
|
||||||
2 [label="Access variable R|<local>/path|"];
|
|
||||||
3 [label="Exit property" style="filled" fillcolor=red];
|
subgraph cluster_1 {
|
||||||
}
|
color=red
|
||||||
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
4 [label="Enter property" style="filled" fillcolor=red];
|
3 [label="Enter property" style="filled" fillcolor=red];
|
||||||
5 [label="Access variable R|<local>/index|"];
|
4 [label="Access variable R|<local>/path|"];
|
||||||
6 [label="Exit property" style="filled" fillcolor=red];
|
5 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
7 [label="Enter function <init>" style="filled" fillcolor=red];
|
6 [label="Enter property" style="filled" fillcolor=red];
|
||||||
8 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
7 [label="Access variable R|<local>/index|"];
|
||||||
9 [label="Exit function <init>" style="filled" fillcolor=red];
|
8 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
10 [label="Exit class A" style="filled" fillcolor=red];
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
10 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
12 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
2 -> {3} [color=green];
|
||||||
0 -> {10} [style=dotted];
|
2 -> {12} [style=dotted];
|
||||||
0 -> {1 4 7} [style=dashed];
|
2 -> {3 6 9} [style=dashed];
|
||||||
1 -> {2};
|
3 -> {4};
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6} [color=green];
|
||||||
6 -> {7} [color=green];
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9} [color=green];
|
||||||
9 -> {10} [color=green];
|
9 -> {10};
|
||||||
|
10 -> {11};
|
||||||
subgraph cluster_4 {
|
|
||||||
color=red
|
|
||||||
11 [label="Enter class Base" style="filled" fillcolor=red];
|
|
||||||
12 [label="Exit class Base" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
11 -> {12} [color=green];
|
11 -> {12} [color=green];
|
||||||
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
13 [label="Enter class Derived" style="filled" fillcolor=red];
|
13 [label="Enter class Base" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
14 [label="Exit class Base" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
14 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
15 [label="Access variable R|<local>/index|"];
|
|
||||||
16 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
18 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
19 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
20 [label="Exit class Derived" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
13 -> {14} [color=green];
|
13 -> {14} [color=green];
|
||||||
13 -> {20} [style=dotted];
|
|
||||||
13 -> {14 17} [style=dashed];
|
|
||||||
14 -> {15};
|
|
||||||
15 -> {16};
|
|
||||||
16 -> {17} [color=green];
|
|
||||||
17 -> {18};
|
|
||||||
18 -> {19};
|
|
||||||
19 -> {20} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_6 {
|
||||||
color=red
|
color=red
|
||||||
21 [label="Enter function test" style="filled" fillcolor=red];
|
15 [label="Enter class Derived" style="filled" fillcolor=red];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
22 [label="Enter block"];
|
16 [label="Enter property" style="filled" fillcolor=red];
|
||||||
23 [label="Access variable R|<local>/a|"];
|
17 [label="Access variable R|<local>/index|"];
|
||||||
24 [label="Enter safe call"];
|
18 [label="Exit property" style="filled" fillcolor=red];
|
||||||
25 [label="Access variable R|/A.path|"];
|
}
|
||||||
26 [label="Exit safe call"];
|
subgraph cluster_8 {
|
||||||
27 [label="Exit lhs of ?:"];
|
color=blue
|
||||||
28 [label="Enter rhs of ?:"];
|
19 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
29 [label="Const: Null(null)"];
|
20 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
30 [label="Jump: ^test Null(null)"];
|
21 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
31 [label="Stub" style="filled" fillcolor=gray];
|
}
|
||||||
32 [label="Lhs of ?: is not null"];
|
22 [label="Exit class Derived" style="filled" fillcolor=red];
|
||||||
33 [label="Exit ?:"];
|
}
|
||||||
34 [label="Variable declaration: lval path: R|kotlin/String|"];
|
15 -> {16} [color=green];
|
||||||
35 [label="Access variable R|<local>/a|"];
|
15 -> {22} [style=dotted];
|
||||||
36 [label="Smart cast: R|<local>/a|"];
|
15 -> {16 19} [style=dashed];
|
||||||
37 [label="Access variable R|/A.index|"];
|
16 -> {17};
|
||||||
38 [label="Function call: R|/takeInt|(...)" style="filled" fillcolor=yellow];
|
17 -> {18};
|
||||||
39 [label="Enter anonymous object"];
|
18 -> {19} [color=green];
|
||||||
subgraph cluster_10 {
|
19 -> {20};
|
||||||
|
20 -> {21};
|
||||||
|
21 -> {22} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=red
|
||||||
|
23 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter block"];
|
||||||
|
25 [label="Access variable R|<local>/a|"];
|
||||||
|
26 [label="Enter safe call"];
|
||||||
|
27 [label="Access variable R|/A.path|"];
|
||||||
|
28 [label="Exit safe call"];
|
||||||
|
29 [label="Exit lhs of ?:"];
|
||||||
|
30 [label="Enter rhs of ?:"];
|
||||||
|
31 [label="Const: Null(null)"];
|
||||||
|
32 [label="Jump: ^test Null(null)"];
|
||||||
|
33 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
34 [label="Lhs of ?: is not null"];
|
||||||
|
35 [label="Exit ?:"];
|
||||||
|
36 [label="Variable declaration: lval path: R|kotlin/String|"];
|
||||||
|
37 [label="Access variable R|<local>/a|"];
|
||||||
|
38 [label="Smart cast: R|<local>/a|"];
|
||||||
|
39 [label="Access variable R|/A.index|"];
|
||||||
|
40 [label="Function call: R|/takeInt|(...)" style="filled" fillcolor=yellow];
|
||||||
|
41 [label="Enter anonymous object"];
|
||||||
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
40 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
42 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
41 [label="Enter field" style="filled" fillcolor=red];
|
|
||||||
42 [label="Access variable R|<local>/a|"];
|
|
||||||
43 [label="Smart cast: R|<local>/a|"];
|
|
||||||
44 [label="Access variable R|/A.index|"];
|
|
||||||
45 [label="Function call: R|/Derived.Derived|(...)" style="filled" fillcolor=yellow];
|
|
||||||
46 [label="Exit field" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
47 [label="Enter property" style="filled" fillcolor=red];
|
43 [label="Enter field" style="filled" fillcolor=red];
|
||||||
48 [label="Access variable R|<local>/a|"];
|
44 [label="Access variable R|<local>/a|"];
|
||||||
49 [label="Smart cast: R|<local>/a|"];
|
45 [label="Smart cast: R|<local>/a|"];
|
||||||
50 [label="Access variable R|/A.index|"];
|
46 [label="Access variable R|/A.index|"];
|
||||||
51 [label="Exit property" style="filled" fillcolor=red];
|
47 [label="Function call: R|/Derived.Derived|(...)" style="filled" fillcolor=yellow];
|
||||||
|
48 [label="Exit field" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
52 [label="Enter function <init>" style="filled" fillcolor=red];
|
49 [label="Enter property" style="filled" fillcolor=red];
|
||||||
53 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
50 [label="Access variable R|<local>/a|"];
|
||||||
54 [label="Exit function <init>" style="filled" fillcolor=red];
|
51 [label="Smart cast: R|<local>/a|"];
|
||||||
|
52 [label="Access variable R|/A.index|"];
|
||||||
|
53 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
55 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
54 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
55 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
56 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
57 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
56 [label="Exit anonymous object expression"];
|
58 [label="Exit anonymous object expression"];
|
||||||
57 [label="Jump: ^test object : R|Base| {
|
59 [label="Jump: ^test object : R|Base| {
|
||||||
private constructor(): R|<anonymous>| {
|
private constructor(): R|<anonymous>| {
|
||||||
super<R|kotlin/Any|>()
|
super<R|kotlin/Any|>()
|
||||||
}
|
}
|
||||||
@@ -141,95 +148,95 @@ digraph smartcastInByClause_kt {
|
|||||||
|
|
||||||
}
|
}
|
||||||
"];
|
"];
|
||||||
58 [label="Stub" style="filled" fillcolor=gray];
|
60 [label="Stub" style="filled" fillcolor=gray];
|
||||||
59 [label="Exit block" style="filled" fillcolor=gray];
|
61 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
60 [label="Exit function test" style="filled" fillcolor=red];
|
62 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_14 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
61 [label="Enter function foo" style="filled" fillcolor=red];
|
63 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_15 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
62 [label="Enter block"];
|
64 [label="Enter block"];
|
||||||
63 [label="Access variable R|<local>/a|"];
|
65 [label="Access variable R|<local>/a|"];
|
||||||
64 [label="Smart cast: R|<local>/a|"];
|
66 [label="Smart cast: R|<local>/a|"];
|
||||||
65 [label="Access variable R|/A.index|"];
|
67 [label="Access variable R|/A.index|"];
|
||||||
66 [label="Function call: R|/takeInt|(...)" style="filled" fillcolor=yellow];
|
68 [label="Function call: R|/takeInt|(...)" style="filled" fillcolor=yellow];
|
||||||
67 [label="Exit block"];
|
69 [label="Exit block"];
|
||||||
}
|
}
|
||||||
68 [label="Exit function foo" style="filled" fillcolor=red];
|
70 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
21 -> {22};
|
23 -> {24};
|
||||||
22 -> {23};
|
|
||||||
23 -> {24 28};
|
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26 30};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28 32};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30 34};
|
||||||
30 -> {60};
|
30 -> {31};
|
||||||
30 -> {31} [style=dotted];
|
31 -> {32};
|
||||||
31 -> {33} [style=dotted];
|
32 -> {62};
|
||||||
32 -> {33};
|
32 -> {33} [style=dotted];
|
||||||
33 -> {34};
|
33 -> {35} [style=dotted];
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
39 -> {56} [style=dotted];
|
|
||||||
39 -> {40} [style=dashed];
|
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
40 -> {47 52 61} [color=red];
|
|
||||||
40 -> {55} [style=dotted];
|
|
||||||
40 -> {41 47 52} [style=dashed];
|
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
|
41 -> {58} [style=dotted];
|
||||||
|
41 -> {42} [style=dashed];
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
|
42 -> {49 54 63} [color=red];
|
||||||
|
42 -> {57} [style=dotted];
|
||||||
|
42 -> {43 49 54} [style=dashed];
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {47} [color=green];
|
46 -> {47};
|
||||||
46 -> {55} [color=red];
|
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49} [color=green];
|
||||||
|
48 -> {57} [color=red];
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
51 -> {52} [color=green];
|
51 -> {52};
|
||||||
51 -> {55} [color=red];
|
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54} [color=green];
|
||||||
|
53 -> {57} [color=red];
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
55 -> {61} [color=green];
|
|
||||||
55 -> {61} [style=dashed];
|
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {60};
|
57 -> {58};
|
||||||
57 -> {58} [style=dotted];
|
57 -> {63} [color=green];
|
||||||
58 -> {59} [style=dotted];
|
57 -> {63} [style=dashed];
|
||||||
|
58 -> {59};
|
||||||
|
59 -> {62};
|
||||||
59 -> {60} [style=dotted];
|
59 -> {60} [style=dotted];
|
||||||
61 -> {62};
|
60 -> {61} [style=dotted];
|
||||||
62 -> {63};
|
61 -> {62} [style=dotted];
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
|
68 -> {69};
|
||||||
subgraph cluster_16 {
|
|
||||||
color=red
|
|
||||||
69 [label="Enter function takeInt" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
70 [label="Enter block"];
|
|
||||||
71 [label="Exit block"];
|
|
||||||
}
|
|
||||||
72 [label="Exit function takeInt" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=red
|
||||||
|
71 [label="Enter function takeInt" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
72 [label="Enter block"];
|
||||||
|
73 [label="Exit block"];
|
||||||
|
}
|
||||||
|
74 [label="Exit function takeInt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
71 -> {72};
|
71 -> {72};
|
||||||
|
72 -> {73};
|
||||||
|
73 -> {74};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+264
-257
@@ -5,248 +5,253 @@ digraph smartcastToNothing_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function getNothing" style="filled" fillcolor=red];
|
0 [label="Enter file smartcastToNothing.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file smartcastToNothing.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function getNothing" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
2 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
4 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||||
3 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
5 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||||
4 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
5 [label="Jump: ^getNothing throw R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
|
||||||
6 [label="Stub" style="filled" fillcolor=gray];
|
6 [label="Stub" style="filled" fillcolor=gray];
|
||||||
7 [label="Exit block" style="filled" fillcolor=gray];
|
7 [label="Jump: ^getNothing throw R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
||||||
|
8 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
9 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
8 [label="Exit function getNothing" style="filled" fillcolor=gray];
|
10 [label="Exit function getNothing" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4} [style=dotted];
|
3 -> {4};
|
||||||
4 -> {5} [style=dotted];
|
4 -> {5};
|
||||||
5 -> {6 8} [style=dotted];
|
5 -> {6} [style=dotted];
|
||||||
6 -> {7} [style=dotted];
|
6 -> {7} [style=dotted];
|
||||||
7 -> {8} [style=dotted];
|
7 -> {8 10} [style=dotted];
|
||||||
|
8 -> {9} [style=dotted];
|
||||||
|
9 -> {10} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
9 [label="Enter function getNullableNothing" style="filled" fillcolor=red];
|
11 [label="Enter function getNullableNothing" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
12 [label="Enter block"];
|
||||||
11 [label="Const: Null(null)"];
|
13 [label="Const: Null(null)"];
|
||||||
12 [label="Jump: ^getNullableNothing Null(null)"];
|
14 [label="Jump: ^getNullableNothing Null(null)"];
|
||||||
13 [label="Stub" style="filled" fillcolor=gray];
|
15 [label="Stub" style="filled" fillcolor=gray];
|
||||||
14 [label="Exit block" style="filled" fillcolor=gray];
|
16 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
15 [label="Exit function getNullableNothing" style="filled" fillcolor=red];
|
17 [label="Exit function getNullableNothing" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {15};
|
12 -> {13};
|
||||||
12 -> {13} [style=dotted];
|
13 -> {14};
|
||||||
13 -> {14} [style=dotted];
|
14 -> {17};
|
||||||
14 -> {15} [style=dotted];
|
14 -> {15} [style=dotted];
|
||||||
|
15 -> {16} [style=dotted];
|
||||||
|
16 -> {17} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=red
|
color=red
|
||||||
16 [label="Enter function <getter>" style="filled" fillcolor=red];
|
18 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
17 [label="Enter block"];
|
19 [label="Enter block"];
|
||||||
18 [label="Const: Int(1)"];
|
20 [label="Const: Int(1)"];
|
||||||
19 [label="Jump: ^ Int(1)"];
|
21 [label="Jump: ^ Int(1)"];
|
||||||
20 [label="Stub" style="filled" fillcolor=gray];
|
22 [label="Stub" style="filled" fillcolor=gray];
|
||||||
21 [label="Exit block" style="filled" fillcolor=gray];
|
23 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
22 [label="Exit function <getter>" style="filled" fillcolor=red];
|
24 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
16 -> {17};
|
|
||||||
17 -> {18};
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {22};
|
19 -> {20};
|
||||||
19 -> {20} [style=dotted];
|
20 -> {21};
|
||||||
20 -> {21} [style=dotted];
|
21 -> {24};
|
||||||
21 -> {22} [style=dotted];
|
21 -> {22} [style=dotted];
|
||||||
|
22 -> {23} [style=dotted];
|
||||||
|
23 -> {24} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
23 [label="Enter function <getter>" style="filled" fillcolor=red];
|
25 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
24 [label="Enter block"];
|
26 [label="Enter block"];
|
||||||
25 [label="Const: Int(2)"];
|
27 [label="Const: Int(2)"];
|
||||||
26 [label="Jump: ^ Int(2)"];
|
28 [label="Jump: ^ Int(2)"];
|
||||||
27 [label="Stub" style="filled" fillcolor=gray];
|
29 [label="Stub" style="filled" fillcolor=gray];
|
||||||
28 [label="Exit block" style="filled" fillcolor=gray];
|
30 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
29 [label="Exit function <getter>" style="filled" fillcolor=red];
|
31 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
23 -> {24};
|
|
||||||
24 -> {25};
|
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {29};
|
26 -> {27};
|
||||||
26 -> {27} [style=dotted];
|
27 -> {28};
|
||||||
27 -> {28} [style=dotted];
|
28 -> {31};
|
||||||
28 -> {29} [style=dotted];
|
28 -> {29} [style=dotted];
|
||||||
|
29 -> {30} [style=dotted];
|
||||||
|
30 -> {31} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=red
|
color=red
|
||||||
30 [label="Enter function myListOf" style="filled" fillcolor=red];
|
32 [label="Enter function myListOf" style="filled" fillcolor=red];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
31 [label="Enter block"];
|
33 [label="Enter block"];
|
||||||
32 [label="Const: Null(null)"];
|
34 [label="Const: Null(null)"];
|
||||||
33 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
|
35 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
|
||||||
34 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
35 [label="Jump: ^myListOf Null(null)!!" style="filled" fillcolor=gray];
|
|
||||||
36 [label="Stub" style="filled" fillcolor=gray];
|
36 [label="Stub" style="filled" fillcolor=gray];
|
||||||
37 [label="Exit block" style="filled" fillcolor=gray];
|
37 [label="Jump: ^myListOf Null(null)!!" style="filled" fillcolor=gray];
|
||||||
|
38 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
39 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
38 [label="Exit function myListOf" style="filled" fillcolor=gray];
|
40 [label="Exit function myListOf" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
30 -> {31};
|
|
||||||
31 -> {32};
|
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34} [style=dotted];
|
33 -> {34};
|
||||||
34 -> {35} [style=dotted];
|
34 -> {35};
|
||||||
35 -> {36 38} [style=dotted];
|
35 -> {36} [style=dotted];
|
||||||
36 -> {37} [style=dotted];
|
36 -> {37} [style=dotted];
|
||||||
37 -> {38} [style=dotted];
|
37 -> {38 40} [style=dotted];
|
||||||
|
38 -> {39} [style=dotted];
|
||||||
|
39 -> {40} [style=dotted];
|
||||||
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=red
|
color=red
|
||||||
39 [label="Enter class A" style="filled" fillcolor=red];
|
41 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
40 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
41 [label="Const: Int(1)"];
|
|
||||||
42 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
43 [label="Enter property" style="filled" fillcolor=red];
|
42 [label="Enter property" style="filled" fillcolor=red];
|
||||||
44 [label="Const: Boolean(true)"];
|
43 [label="Const: Int(1)"];
|
||||||
45 [label="Exit property" style="filled" fillcolor=red];
|
44 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
46 [label="Enter function <init>" style="filled" fillcolor=red];
|
45 [label="Enter property" style="filled" fillcolor=red];
|
||||||
47 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
46 [label="Const: Boolean(true)"];
|
||||||
48 [label="Exit function <init>" style="filled" fillcolor=red];
|
47 [label="Exit property" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
49 [label="Exit class A" style="filled" fillcolor=red];
|
subgraph cluster_14 {
|
||||||
}
|
|
||||||
39 -> {40} [color=green];
|
|
||||||
39 -> {49} [style=dotted];
|
|
||||||
39 -> {40 43 46} [style=dashed];
|
|
||||||
40 -> {41};
|
|
||||||
41 -> {42};
|
|
||||||
42 -> {43} [color=green];
|
|
||||||
43 -> {44};
|
|
||||||
44 -> {45};
|
|
||||||
45 -> {46} [color=green];
|
|
||||||
46 -> {47};
|
|
||||||
47 -> {48};
|
|
||||||
48 -> {49} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=red
|
|
||||||
50 [label="Enter function test_0" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
color=blue
|
||||||
51 [label="Enter block"];
|
48 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
52 [label="Const: Null(null)"];
|
49 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
53 [label="Variable declaration: lvar s: R|A?|"];
|
50 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_16 {
|
}
|
||||||
|
51 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
41 -> {42} [color=green];
|
||||||
|
41 -> {51} [style=dotted];
|
||||||
|
41 -> {42 45 48} [style=dashed];
|
||||||
|
42 -> {43};
|
||||||
|
43 -> {44};
|
||||||
|
44 -> {45} [color=green];
|
||||||
|
45 -> {46};
|
||||||
|
46 -> {47};
|
||||||
|
47 -> {48} [color=green];
|
||||||
|
48 -> {49};
|
||||||
|
49 -> {50};
|
||||||
|
50 -> {51} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=red
|
||||||
|
52 [label="Enter function test_0" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
53 [label="Enter block"];
|
||||||
|
54 [label="Const: Null(null)"];
|
||||||
|
55 [label="Variable declaration: lvar s: R|A?|"];
|
||||||
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
54 [label="Enter block"];
|
56 [label="Enter block"];
|
||||||
55 [label="Access variable R|<local>/results|"];
|
57 [label="Access variable R|<local>/results|"];
|
||||||
56 [label="Function call: R|<local>/results|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Nothing>|>|()" style="filled" fillcolor=yellow];
|
58 [label="Function call: R|<local>/results|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Nothing>|>|()" style="filled" fillcolor=yellow];
|
||||||
57 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Nothing>|"];
|
59 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Nothing>|"];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
58 [label="Enter while loop"];
|
60 [label="Enter while loop"];
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
59 [label="Enter loop condition"];
|
|
||||||
60 [label="Access variable R|<local>/<iterator>|"];
|
|
||||||
61 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
|
||||||
62 [label="Exit loop condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_19 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
63 [label="Enter loop block"];
|
61 [label="Enter loop condition"];
|
||||||
subgraph cluster_20 {
|
62 [label="Access variable R|<local>/<iterator>|"];
|
||||||
|
63 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||||
|
64 [label="Exit loop condition"];
|
||||||
|
}
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
65 [label="Enter loop block"];
|
||||||
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
64 [label="Enter block"];
|
66 [label="Enter block"];
|
||||||
65 [label="Access variable R|<local>/<iterator>|"];
|
67 [label="Access variable R|<local>/<iterator>|"];
|
||||||
66 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Nothing|>|()" style="filled" fillcolor=yellow];
|
68 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Nothing|>|()" style="filled" fillcolor=yellow];
|
||||||
67 [label="Stub" style="filled" fillcolor=gray];
|
69 [label="Stub" style="filled" fillcolor=gray];
|
||||||
68 [label="Variable declaration: lval result: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
70 [label="Variable declaration: lval result: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
||||||
subgraph cluster_21 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
69 [label="Enter block" style="filled" fillcolor=gray];
|
71 [label="Enter block" style="filled" fillcolor=gray];
|
||||||
70 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray];
|
72 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray];
|
||||||
71 [label="Stub" style="filled" fillcolor=gray];
|
73 [label="Stub" style="filled" fillcolor=gray];
|
||||||
72 [label="Assignment: R|<local>/s|" style="filled" fillcolor=gray];
|
74 [label="Assignment: R|<local>/s|" style="filled" fillcolor=gray];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_23 {
|
||||||
color=blue
|
color=blue
|
||||||
73 [label="Enter when" style="filled" fillcolor=gray];
|
75 [label="Enter when" style="filled" fillcolor=gray];
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
74 [label="Enter when branch condition " style="filled" fillcolor=gray];
|
|
||||||
75 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray];
|
|
||||||
76 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
77 [label="Access variable <Unresolved name: b>#" style="filled" fillcolor=gray];
|
|
||||||
78 [label="Exit when branch condition" style="filled" fillcolor=gray];
|
|
||||||
}
|
|
||||||
79 [label="Synthetic else branch" style="filled" fillcolor=gray];
|
|
||||||
80 [label="Enter when branch result" style="filled" fillcolor=gray];
|
|
||||||
subgraph cluster_24 {
|
subgraph cluster_24 {
|
||||||
color=blue
|
color=blue
|
||||||
81 [label="Enter block" style="filled" fillcolor=gray];
|
76 [label="Enter when branch condition " style="filled" fillcolor=gray];
|
||||||
82 [label="Jump: break@@@[R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()] " style="filled" fillcolor=gray];
|
77 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray];
|
||||||
83 [label="Stub" style="filled" fillcolor=gray];
|
78 [label="Stub" style="filled" fillcolor=gray];
|
||||||
84 [label="Exit block" style="filled" fillcolor=gray];
|
79 [label="Access variable <Unresolved name: b>#" style="filled" fillcolor=gray];
|
||||||
|
80 [label="Exit when branch condition" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
85 [label="Exit when branch result" style="filled" fillcolor=gray];
|
81 [label="Synthetic else branch" style="filled" fillcolor=gray];
|
||||||
86 [label="Exit when" style="filled" fillcolor=gray];
|
82 [label="Enter when branch result" style="filled" fillcolor=gray];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
83 [label="Enter block" style="filled" fillcolor=gray];
|
||||||
|
84 [label="Jump: break@@@[R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()] " style="filled" fillcolor=gray];
|
||||||
|
85 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
86 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
87 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
88 [label="Exit when" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
87 [label="Exit block" style="filled" fillcolor=gray];
|
89 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
88 [label="Exit block" style="filled" fillcolor=gray];
|
90 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
89 [label="Exit loop block" style="filled" fillcolor=gray];
|
91 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
90 [label="Exit while loop"];
|
92 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
91 [label="Exit block"];
|
93 [label="Exit block"];
|
||||||
}
|
}
|
||||||
92 [label="Access variable R|<local>/s|"];
|
94 [label="Access variable R|<local>/s|"];
|
||||||
93 [label="Enter safe call"];
|
95 [label="Enter safe call"];
|
||||||
94 [label="Postponed enter to lambda"];
|
96 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
95 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
97 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_26 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
96 [label="Enter block"];
|
98 [label="Enter block"];
|
||||||
97 [label="Access variable R|<local>/it|"];
|
99 [label="Access variable R|<local>/it|"];
|
||||||
98 [label="Access variable R|/A.a|"];
|
100 [label="Access variable R|/A.a|"];
|
||||||
99 [label="Exit block"];
|
101 [label="Exit block"];
|
||||||
}
|
}
|
||||||
100 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
102 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
101 [label="Postponed exit from lambda"];
|
103 [label="Postponed exit from lambda"];
|
||||||
102 [label="Function call: $subj$.R|kotlin/let|<R|A|, R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
104 [label="Function call: $subj$.R|kotlin/let|<R|A|, R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
103 [label="Exit safe call"];
|
105 [label="Exit safe call"];
|
||||||
104 [label="Exit block"];
|
106 [label="Exit block"];
|
||||||
}
|
}
|
||||||
105 [label="Exit function test_0" style="filled" fillcolor=red];
|
107 [label="Exit function test_0" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
50 -> {51};
|
|
||||||
51 -> {52};
|
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
@@ -257,12 +262,12 @@ digraph smartcastToNothing_kt {
|
|||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63 90};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65 92};
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67} [style=dotted];
|
66 -> {67};
|
||||||
67 -> {68} [style=dotted];
|
67 -> {68};
|
||||||
68 -> {69} [style=dotted];
|
68 -> {69} [style=dotted];
|
||||||
69 -> {70} [style=dotted];
|
69 -> {70} [style=dotted];
|
||||||
70 -> {71} [style=dotted];
|
70 -> {71} [style=dotted];
|
||||||
@@ -273,27 +278,27 @@ digraph smartcastToNothing_kt {
|
|||||||
75 -> {76} [style=dotted];
|
75 -> {76} [style=dotted];
|
||||||
76 -> {77} [style=dotted];
|
76 -> {77} [style=dotted];
|
||||||
77 -> {78} [style=dotted];
|
77 -> {78} [style=dotted];
|
||||||
78 -> {79 80} [style=dotted];
|
78 -> {79} [style=dotted];
|
||||||
79 -> {86} [style=dotted];
|
79 -> {80} [style=dotted];
|
||||||
80 -> {81} [style=dotted];
|
80 -> {81 82} [style=dotted];
|
||||||
81 -> {82} [style=dotted];
|
81 -> {88} [style=dotted];
|
||||||
82 -> {83 90} [style=dotted];
|
82 -> {83} [style=dotted];
|
||||||
83 -> {84} [style=dotted];
|
83 -> {84} [style=dotted];
|
||||||
84 -> {85} [style=dotted];
|
84 -> {85 92} [style=dotted];
|
||||||
85 -> {86} [style=dotted];
|
85 -> {86} [style=dotted];
|
||||||
86 -> {87} [style=dotted];
|
86 -> {87} [style=dotted];
|
||||||
87 -> {88} [style=dotted];
|
87 -> {88} [style=dotted];
|
||||||
88 -> {89} [style=dotted];
|
88 -> {89} [style=dotted];
|
||||||
89 -> {59} [color=green style=dotted];
|
89 -> {90} [style=dotted];
|
||||||
90 -> {91};
|
90 -> {91} [style=dotted];
|
||||||
91 -> {92};
|
91 -> {61} [color=green style=dotted];
|
||||||
92 -> {93 103};
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95 102};
|
94 -> {95 105};
|
||||||
94 -> {101} [style=dotted];
|
|
||||||
94 -> {95} [style=dashed];
|
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {97};
|
96 -> {97 104};
|
||||||
|
96 -> {103} [style=dotted];
|
||||||
|
96 -> {97} [style=dashed];
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
@@ -302,82 +307,82 @@ digraph smartcastToNothing_kt {
|
|||||||
102 -> {103};
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105};
|
||||||
|
105 -> {106};
|
||||||
|
106 -> {107};
|
||||||
|
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=red
|
color=red
|
||||||
106 [label="Enter function test_1" style="filled" fillcolor=red];
|
108 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
subgraph cluster_28 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
107 [label="Enter block"];
|
109 [label="Enter block"];
|
||||||
subgraph cluster_29 {
|
subgraph cluster_30 {
|
||||||
color=blue
|
color=blue
|
||||||
108 [label="Enter when"];
|
110 [label="Enter when"];
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
109 [label="Enter when branch condition "];
|
|
||||||
110 [label="Access variable R|<local>/a|"];
|
|
||||||
111 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing?|)"];
|
|
||||||
112 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
113 [label="Synthetic else branch"];
|
|
||||||
114 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_31 {
|
subgraph cluster_31 {
|
||||||
color=blue
|
color=blue
|
||||||
115 [label="Enter block"];
|
111 [label="Enter when branch condition "];
|
||||||
116 [label="Access variable R|<local>/a|"];
|
112 [label="Access variable R|<local>/a|"];
|
||||||
117 [label="Smart cast: R|<local>/a|"];
|
113 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing?|)"];
|
||||||
118 [label="Enter safe call"];
|
114 [label="Exit when branch condition"];
|
||||||
119 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
120 [label="Exit safe call"];
|
|
||||||
121 [label="Variable declaration: lval b: R|kotlin/Int?|"];
|
|
||||||
122 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
123 [label="Exit when branch result"];
|
115 [label="Synthetic else branch"];
|
||||||
124 [label="Exit when"];
|
116 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_32 {
|
||||||
subgraph cluster_32 {
|
|
||||||
color=blue
|
|
||||||
125 [label="Enter when"];
|
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
color=blue
|
||||||
126 [label="Enter when branch condition "];
|
117 [label="Enter block"];
|
||||||
127 [label="Access variable R|<local>/a|"];
|
118 [label="Access variable R|<local>/a|"];
|
||||||
128 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing|)"];
|
119 [label="Smart cast: R|<local>/a|"];
|
||||||
129 [label="Exit when branch condition"];
|
120 [label="Enter safe call"];
|
||||||
|
121 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
122 [label="Exit safe call"];
|
||||||
|
123 [label="Variable declaration: lval b: R|kotlin/Int?|"];
|
||||||
|
124 [label="Exit block"];
|
||||||
}
|
}
|
||||||
130 [label="Synthetic else branch"];
|
125 [label="Exit when branch result"];
|
||||||
131 [label="Enter when branch result"];
|
126 [label="Exit when"];
|
||||||
|
}
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=blue
|
||||||
|
127 [label="Enter when"];
|
||||||
subgraph cluster_34 {
|
subgraph cluster_34 {
|
||||||
color=blue
|
color=blue
|
||||||
132 [label="Enter block"];
|
128 [label="Enter when branch condition "];
|
||||||
133 [label="Access variable R|<local>/a|"];
|
129 [label="Access variable R|<local>/a|"];
|
||||||
134 [label="Smart cast: R|<local>/a|"];
|
130 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing|)"];
|
||||||
135 [label="Stub" style="filled" fillcolor=gray];
|
131 [label="Exit when branch condition"];
|
||||||
136 [label="Access variable R|kotlin/String.length|" style="filled" fillcolor=gray];
|
|
||||||
137 [label="Variable declaration: lval b: R|kotlin/Int|" style="filled" fillcolor=gray];
|
|
||||||
138 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
139 [label="Exit when branch result" style="filled" fillcolor=gray];
|
132 [label="Synthetic else branch"];
|
||||||
140 [label="Exit when"];
|
133 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=blue
|
||||||
|
134 [label="Enter block"];
|
||||||
|
135 [label="Access variable R|<local>/a|"];
|
||||||
|
136 [label="Smart cast: R|<local>/a|"];
|
||||||
|
137 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
138 [label="Access variable R|kotlin/String.length|" style="filled" fillcolor=gray];
|
||||||
|
139 [label="Variable declaration: lval b: R|kotlin/Int|" style="filled" fillcolor=gray];
|
||||||
|
140 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
141 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
142 [label="Exit when"];
|
||||||
}
|
}
|
||||||
141 [label="Exit block"];
|
143 [label="Exit block"];
|
||||||
}
|
}
|
||||||
142 [label="Exit function test_1" style="filled" fillcolor=red];
|
144 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
106 -> {107};
|
|
||||||
107 -> {108};
|
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {113 114};
|
112 -> {113};
|
||||||
113 -> {124};
|
113 -> {114};
|
||||||
114 -> {115};
|
114 -> {115 116};
|
||||||
115 -> {116};
|
115 -> {126};
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
117 -> {118 120};
|
117 -> {118};
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
119 -> {120 122};
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
122 -> {123};
|
122 -> {123};
|
||||||
@@ -387,18 +392,20 @@ digraph smartcastToNothing_kt {
|
|||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128};
|
||||||
128 -> {129};
|
128 -> {129};
|
||||||
129 -> {130 131};
|
129 -> {130};
|
||||||
130 -> {140};
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132 133};
|
||||||
132 -> {133};
|
132 -> {142};
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
134 -> {135} [style=dotted];
|
134 -> {135};
|
||||||
135 -> {136} [style=dotted];
|
135 -> {136};
|
||||||
136 -> {137} [style=dotted];
|
136 -> {137} [style=dotted];
|
||||||
137 -> {138} [style=dotted];
|
137 -> {138} [style=dotted];
|
||||||
138 -> {139} [style=dotted];
|
138 -> {139} [style=dotted];
|
||||||
139 -> {140} [style=dotted];
|
139 -> {140} [style=dotted];
|
||||||
140 -> {141};
|
140 -> {141} [style=dotted];
|
||||||
141 -> {142};
|
141 -> {142} [style=dotted];
|
||||||
|
142 -> {143};
|
||||||
|
143 -> {144};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+109
-102
@@ -5,94 +5,99 @@ digraph overridenOpenVal_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file overridenOpenVal.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file overridenOpenVal.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter property" style="filled" fillcolor=red];
|
|
||||||
2 [label="Access variable R|<local>/x|"];
|
|
||||||
3 [label="Exit property" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
4 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
5 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
6 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {7} [style=dotted];
|
|
||||||
0 -> {1 4} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
4 -> {5};
|
|
||||||
5 -> {6};
|
|
||||||
6 -> {7} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter class B" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
3 [label="Enter property" style="filled" fillcolor=red];
|
||||||
10 [label="Access variable R|<local>/x|"];
|
4 [label="Access variable R|<local>/x|"];
|
||||||
11 [label="Delegated constructor call: super<R|A|>(...)" style="filled" fillcolor=yellow];
|
5 [label="Exit property" style="filled" fillcolor=red];
|
||||||
12 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
13 [label="Exit class B" style="filled" fillcolor=red];
|
subgraph cluster_3 {
|
||||||
}
|
|
||||||
8 -> {9} [color=green];
|
|
||||||
8 -> {13} [style=dotted];
|
|
||||||
8 -> {9} [style=dashed];
|
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
|
||||||
11 -> {12};
|
|
||||||
12 -> {13} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=red
|
|
||||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter block"];
|
6 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
7 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
8 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
9 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
2 -> {3} [color=green];
|
||||||
|
2 -> {9} [style=dotted];
|
||||||
|
2 -> {3 6} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [color=green];
|
||||||
|
6 -> {7};
|
||||||
|
7 -> {8};
|
||||||
|
8 -> {9} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
10 [label="Enter class B" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
12 [label="Access variable R|<local>/x|"];
|
||||||
|
13 [label="Delegated constructor call: super<R|A|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
15 [label="Exit class B" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
10 -> {11} [color=green];
|
||||||
|
10 -> {15} [style=dotted];
|
||||||
|
10 -> {11} [style=dashed];
|
||||||
|
11 -> {12};
|
||||||
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
|
14 -> {15} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter block"];
|
||||||
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter when"];
|
18 [label="Enter when"];
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter when branch condition "];
|
|
||||||
18 [label="Access variable R|/A.x|"];
|
|
||||||
19 [label="Type operator: (this@R|/B|.R|/A.x| is R|kotlin/String|)"];
|
|
||||||
20 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
21 [label="Synthetic else branch"];
|
|
||||||
22 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
19 [label="Enter when branch condition "];
|
||||||
24 [label="Access variable R|/A.x|"];
|
20 [label="Access variable R|/A.x|"];
|
||||||
25 [label="Smart cast: this@R|/B|.R|/A.x|"];
|
21 [label="Type operator: (this@R|/B|.R|/A.x| is R|kotlin/String|)"];
|
||||||
26 [label="Access variable R|kotlin/String.length|"];
|
22 [label="Exit when branch condition"];
|
||||||
27 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
28 [label="Exit when branch result"];
|
23 [label="Synthetic else branch"];
|
||||||
29 [label="Exit when"];
|
24 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Access variable R|/A.x|"];
|
||||||
|
27 [label="Smart cast: this@R|/B|.R|/A.x|"];
|
||||||
|
28 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
29 [label="Exit block"];
|
||||||
|
}
|
||||||
|
30 [label="Exit when branch result"];
|
||||||
|
31 [label="Exit when"];
|
||||||
}
|
}
|
||||||
30 [label="Exit block"];
|
32 [label="Exit block"];
|
||||||
}
|
}
|
||||||
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
33 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
14 -> {15};
|
|
||||||
15 -> {16};
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21 22};
|
20 -> {21};
|
||||||
21 -> {29};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23 24};
|
||||||
23 -> {24};
|
23 -> {31};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
@@ -100,53 +105,53 @@ digraph overridenOpenVal_kt {
|
|||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=red
|
color=red
|
||||||
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
34 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
33 [label="Enter block"];
|
35 [label="Enter block"];
|
||||||
subgraph cluster_12 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
34 [label="Enter when"];
|
36 [label="Enter when"];
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter when branch condition "];
|
|
||||||
36 [label="Access variable R|<local>/b|"];
|
|
||||||
37 [label="Access variable R|/A.x|"];
|
|
||||||
38 [label="Type operator: (R|<local>/b|.R|/A.x| is R|kotlin/String|)"];
|
|
||||||
39 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
40 [label="Synthetic else branch"];
|
|
||||||
41 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
42 [label="Enter block"];
|
37 [label="Enter when branch condition "];
|
||||||
43 [label="Access variable R|<local>/b|"];
|
38 [label="Access variable R|<local>/b|"];
|
||||||
44 [label="Access variable R|/A.x|"];
|
39 [label="Access variable R|/A.x|"];
|
||||||
45 [label="Smart cast: R|<local>/b|.R|/A.x|"];
|
40 [label="Type operator: (R|<local>/b|.R|/A.x| is R|kotlin/String|)"];
|
||||||
46 [label="Access variable R|kotlin/String.length|"];
|
41 [label="Exit when branch condition"];
|
||||||
47 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
48 [label="Exit when branch result"];
|
42 [label="Synthetic else branch"];
|
||||||
49 [label="Exit when"];
|
43 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
44 [label="Enter block"];
|
||||||
|
45 [label="Access variable R|<local>/b|"];
|
||||||
|
46 [label="Access variable R|/A.x|"];
|
||||||
|
47 [label="Smart cast: R|<local>/b|.R|/A.x|"];
|
||||||
|
48 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
49 [label="Exit block"];
|
||||||
|
}
|
||||||
|
50 [label="Exit when branch result"];
|
||||||
|
51 [label="Exit when"];
|
||||||
}
|
}
|
||||||
50 [label="Exit block"];
|
52 [label="Exit block"];
|
||||||
}
|
}
|
||||||
51 [label="Exit function test_2" style="filled" fillcolor=red];
|
53 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
32 -> {33};
|
|
||||||
33 -> {34};
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40 41};
|
39 -> {40};
|
||||||
40 -> {49};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42 43};
|
||||||
42 -> {43};
|
42 -> {51};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
@@ -155,5 +160,7 @@ digraph overridenOpenVal_kt {
|
|||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
|
51 -> {52};
|
||||||
|
52 -> {53};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+69
-62
@@ -5,103 +5,108 @@ digraph delayedAssignment_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
0 [label="Enter file delayedAssignment.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file delayedAssignment.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
|
||||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
|
||||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
4 [label="Exit class A" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
0 -> {4} [style=dotted];
|
|
||||||
0 -> {1} [style=dashed];
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
3 -> {4} [color=green];
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
5 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
6 [label="Enter block"];
|
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
7 [label="Exit block"];
|
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
8 [label="Exit function foo" style="filled" fillcolor=red];
|
6 [label="Exit class A" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
5 -> {6};
|
2 -> {3} [color=green];
|
||||||
6 -> {7};
|
2 -> {6} [style=dotted];
|
||||||
7 -> {8};
|
2 -> {3} [style=dashed];
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
5 -> {6} [color=green];
|
||||||
|
|
||||||
subgraph cluster_4 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
9 [label="Enter function test" style="filled" fillcolor=red];
|
7 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
8 [label="Enter block"];
|
||||||
11 [label="Variable declaration: lval a: R|A?|"];
|
9 [label="Exit block"];
|
||||||
subgraph cluster_6 {
|
}
|
||||||
|
10 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
7 -> {8};
|
||||||
|
8 -> {9};
|
||||||
|
9 -> {10};
|
||||||
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
11 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
13 [label="Variable declaration: lval a: R|A?|"];
|
||||||
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter when"];
|
14 [label="Enter when"];
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
13 [label="Enter when branch condition "];
|
|
||||||
14 [label="Access variable R|<local>/b|"];
|
|
||||||
15 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
16 [label="Enter when branch condition else"];
|
15 [label="Enter when branch condition "];
|
||||||
|
16 [label="Access variable R|<local>/b|"];
|
||||||
17 [label="Exit when branch condition"];
|
17 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
18 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
19 [label="Enter block"];
|
18 [label="Enter when branch condition else"];
|
||||||
20 [label="Const: Null(null)"];
|
19 [label="Exit when branch condition"];
|
||||||
21 [label="Assignment: R|<local>/a|"];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
23 [label="Exit when branch result"];
|
20 [label="Enter when branch result"];
|
||||||
24 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_10 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
25 [label="Enter block"];
|
21 [label="Enter block"];
|
||||||
26 [label="Function call: R|/A.A|()" style="filled" fillcolor=yellow];
|
22 [label="Const: Null(null)"];
|
||||||
27 [label="Assignment: R|<local>/a|"];
|
23 [label="Assignment: R|<local>/a|"];
|
||||||
28 [label="Access variable R|<local>/a|"];
|
24 [label="Exit block"];
|
||||||
29 [label="Smart cast: R|<local>/a|"];
|
|
||||||
30 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
|
||||||
31 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
32 [label="Exit when branch result"];
|
25 [label="Exit when branch result"];
|
||||||
33 [label="Exit when"];
|
26 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
27 [label="Enter block"];
|
||||||
|
28 [label="Function call: R|/A.A|()" style="filled" fillcolor=yellow];
|
||||||
|
29 [label="Assignment: R|<local>/a|"];
|
||||||
|
30 [label="Access variable R|<local>/a|"];
|
||||||
|
31 [label="Smart cast: R|<local>/a|"];
|
||||||
|
32 [label="Function call: R|<local>/a|.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||||
|
33 [label="Exit block"];
|
||||||
|
}
|
||||||
|
34 [label="Exit when branch result"];
|
||||||
|
35 [label="Exit when"];
|
||||||
}
|
}
|
||||||
34 [label="Access variable R|<local>/a|"];
|
36 [label="Access variable R|<local>/a|"];
|
||||||
35 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
37 [label="Function call: R|<local>/a|.R|/A.foo<Inapplicable(UNSAFE_CALL): /A.foo>#|()" style="filled" fillcolor=yellow];
|
||||||
36 [label="Exit block"];
|
38 [label="Exit block"];
|
||||||
}
|
}
|
||||||
37 [label="Exit function test" style="filled" fillcolor=red];
|
39 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16 24};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18 26};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {33};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {35};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
@@ -113,5 +118,7 @@ digraph delayedAssignment_kt {
|
|||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
|
37 -> {38};
|
||||||
|
38 -> {39};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+82
-75
@@ -5,23 +5,28 @@ digraph smartcastAfterReassignment_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file smartcastAfterReassignment.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file smartcastAfterReassignment.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Const: Int(1)"];
|
|
||||||
3 [label="Variable declaration: lvar x: R|kotlin/Any|"];
|
subgraph cluster_1 {
|
||||||
4 [label="Const: String()"];
|
color=red
|
||||||
5 [label="Assignment: R|<local>/x|"];
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
6 [label="Access variable R|<local>/x|"];
|
subgraph cluster_2 {
|
||||||
7 [label="Smart cast: R|<local>/x|"];
|
color=blue
|
||||||
8 [label="Access variable R|kotlin/String.length|"];
|
3 [label="Enter block"];
|
||||||
9 [label="Exit block"];
|
4 [label="Const: Int(1)"];
|
||||||
}
|
5 [label="Variable declaration: lvar x: R|kotlin/Any|"];
|
||||||
10 [label="Exit function test_1" style="filled" fillcolor=red];
|
6 [label="Const: String()"];
|
||||||
|
7 [label="Assignment: R|<local>/x|"];
|
||||||
|
8 [label="Access variable R|<local>/x|"];
|
||||||
|
9 [label="Smart cast: R|<local>/x|"];
|
||||||
|
10 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
11 [label="Exit block"];
|
||||||
|
}
|
||||||
|
12 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
@@ -30,47 +35,47 @@ digraph smartcastAfterReassignment_kt {
|
|||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
|
10 -> {11};
|
||||||
|
11 -> {12};
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=red
|
color=red
|
||||||
11 [label="Enter function test_2" style="filled" fillcolor=red];
|
13 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter block"];
|
14 [label="Enter block"];
|
||||||
13 [label="Const: Null(null)"];
|
15 [label="Const: Null(null)"];
|
||||||
14 [label="Variable declaration: lvar x: R|kotlin/String?|"];
|
16 [label="Variable declaration: lvar x: R|kotlin/String?|"];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter when"];
|
17 [label="Enter when"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
16 [label="Enter when branch condition "];
|
|
||||||
17 [label="Access variable R|<local>/x|"];
|
|
||||||
18 [label="Const: Null(null)"];
|
|
||||||
19 [label="Equality operator =="];
|
|
||||||
20 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
21 [label="Synthetic else branch"];
|
|
||||||
22 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
18 [label="Enter when branch condition "];
|
||||||
24 [label="Const: String()"];
|
19 [label="Access variable R|<local>/x|"];
|
||||||
25 [label="Assignment: R|<local>/x|"];
|
20 [label="Const: Null(null)"];
|
||||||
26 [label="Exit block"];
|
21 [label="Equality operator =="];
|
||||||
|
22 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
27 [label="Exit when branch result"];
|
23 [label="Synthetic else branch"];
|
||||||
28 [label="Exit when"];
|
24 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter block"];
|
||||||
|
26 [label="Const: String()"];
|
||||||
|
27 [label="Assignment: R|<local>/x|"];
|
||||||
|
28 [label="Exit block"];
|
||||||
|
}
|
||||||
|
29 [label="Exit when branch result"];
|
||||||
|
30 [label="Exit when"];
|
||||||
}
|
}
|
||||||
29 [label="Access variable R|<local>/x|"];
|
31 [label="Access variable R|<local>/x|"];
|
||||||
30 [label="Smart cast: R|<local>/x|"];
|
32 [label="Smart cast: R|<local>/x|"];
|
||||||
31 [label="Access variable R|kotlin/String.length|"];
|
33 [label="Access variable R|kotlin/String.length|"];
|
||||||
32 [label="Exit block"];
|
34 [label="Exit block"];
|
||||||
}
|
}
|
||||||
33 [label="Exit function test_2" style="filled" fillcolor=red];
|
35 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
11 -> {12};
|
|
||||||
12 -> {13};
|
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
@@ -78,10 +83,10 @@ digraph smartcastAfterReassignment_kt {
|
|||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21 22};
|
20 -> {21};
|
||||||
21 -> {28};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23 24};
|
||||||
23 -> {24};
|
23 -> {30};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
@@ -91,31 +96,31 @@ digraph smartcastAfterReassignment_kt {
|
|||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
|
33 -> {34};
|
||||||
subgraph cluster_7 {
|
|
||||||
color=red
|
|
||||||
34 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter block"];
|
|
||||||
36 [label="Const: Null(null)"];
|
|
||||||
37 [label="Variable declaration: lvar x: R|kotlin/String?|"];
|
|
||||||
38 [label="Const: String()"];
|
|
||||||
39 [label="Assignment: R|<local>/x|"];
|
|
||||||
40 [label="Access variable R|<local>/x|"];
|
|
||||||
41 [label="Smart cast: R|<local>/x|"];
|
|
||||||
42 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
43 [label="Const: Null(null)"];
|
|
||||||
44 [label="Assignment: R|<local>/x|"];
|
|
||||||
45 [label="Access variable R|<local>/x|"];
|
|
||||||
46 [label="Smart cast: R|<local>/x|"];
|
|
||||||
47 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
|
||||||
48 [label="Exit block"];
|
|
||||||
}
|
|
||||||
49 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=red
|
||||||
|
36 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
37 [label="Enter block"];
|
||||||
|
38 [label="Const: Null(null)"];
|
||||||
|
39 [label="Variable declaration: lvar x: R|kotlin/String?|"];
|
||||||
|
40 [label="Const: String()"];
|
||||||
|
41 [label="Assignment: R|<local>/x|"];
|
||||||
|
42 [label="Access variable R|<local>/x|"];
|
||||||
|
43 [label="Smart cast: R|<local>/x|"];
|
||||||
|
44 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
45 [label="Const: Null(null)"];
|
||||||
|
46 [label="Assignment: R|<local>/x|"];
|
||||||
|
47 [label="Access variable R|<local>/x|"];
|
||||||
|
48 [label="Smart cast: R|<local>/x|"];
|
||||||
|
49 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||||
|
50 [label="Exit block"];
|
||||||
|
}
|
||||||
|
51 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
@@ -129,5 +134,7 @@ digraph smartcastAfterReassignment_kt {
|
|||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
|
49 -> {50};
|
||||||
|
50 -> {51};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+94
-87
@@ -5,109 +5,114 @@ digraph complexPostponedCfg_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter class FirBase" style="filled" fillcolor=red];
|
0 [label="Enter file complexPostponedCfg.kt" style="filled" fillcolor=red];
|
||||||
1 [label="Exit class FirBase" style="filled" fillcolor=red];
|
1 [label="Exit file complexPostponedCfg.kt" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1} [color=green];
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
subgraph cluster_1 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
2 [label="Enter class FirFunctionCall" style="filled" fillcolor=red];
|
2 [label="Enter class FirBase" style="filled" fillcolor=red];
|
||||||
3 [label="Exit class FirFunctionCall" style="filled" fillcolor=red];
|
3 [label="Exit class FirBase" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
2 -> {3} [color=green];
|
2 -> {3} [color=green];
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_2 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function foo" style="filled" fillcolor=red];
|
4 [label="Enter class FirFunctionCall" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
5 [label="Exit class FirFunctionCall" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
5 [label="Enter block"];
|
4 -> {5} [color=green];
|
||||||
6 [label="Access variable R|<local>/statements|"];
|
|
||||||
7 [label="Function call: R|<local>/statements|.R|kotlin/collections/last|<R|FirBase|>()" style="filled" fillcolor=yellow];
|
subgraph cluster_3 {
|
||||||
8 [label="Type operator: (R|<local>/statements|.R|kotlin/collections/last|<R|FirBase|>() as R|FirFunctionCall|)"];
|
color=red
|
||||||
9 [label="Postponed enter to lambda"];
|
6 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
7 [label="Enter block"];
|
||||||
subgraph cluster_5 {
|
8 [label="Access variable R|<local>/statements|"];
|
||||||
color=blue
|
9 [label="Function call: R|<local>/statements|.R|kotlin/collections/last|<R|FirBase|>()" style="filled" fillcolor=yellow];
|
||||||
11 [label="Enter block"];
|
10 [label="Type operator: (R|<local>/statements|.R|kotlin/collections/last|<R|FirBase|>() as R|FirFunctionCall|)"];
|
||||||
12 [label="Postponed enter to lambda"];
|
11 [label="Postponed enter to lambda"];
|
||||||
subgraph cluster_6 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
13 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
12 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter block"];
|
13 [label="Enter block"];
|
||||||
15 [label="Access variable this@R|special/anonymous|"];
|
14 [label="Postponed enter to lambda"];
|
||||||
16 [label="Function call: this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(...)" style="filled" fillcolor=yellow];
|
subgraph cluster_7 {
|
||||||
17 [label="Access variable R|<local>/arguments|"];
|
color=blue
|
||||||
18 [label="Function call: R|<local>/arguments|.R|kotlin/collections/last|<R|FirBase|>()" style="filled" fillcolor=yellow];
|
15 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
19 [label="Type operator: (R|<local>/arguments|.R|kotlin/collections/last|<R|FirBase|>() as R|FirFunctionCall|)"];
|
subgraph cluster_8 {
|
||||||
20 [label="Postponed enter to lambda"];
|
color=blue
|
||||||
subgraph cluster_8 {
|
16 [label="Enter block"];
|
||||||
color=blue
|
17 [label="Access variable this@R|special/anonymous|"];
|
||||||
21 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
18 [label="Function call: this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(...)" style="filled" fillcolor=yellow];
|
||||||
subgraph cluster_9 {
|
19 [label="Access variable R|<local>/arguments|"];
|
||||||
color=blue
|
20 [label="Function call: R|<local>/arguments|.R|kotlin/collections/last|<R|FirBase|>()" style="filled" fillcolor=yellow];
|
||||||
22 [label="Enter block"];
|
21 [label="Type operator: (R|<local>/arguments|.R|kotlin/collections/last|<R|FirBase|>() as R|FirFunctionCall|)"];
|
||||||
23 [label="Access variable this@R|special/anonymous|"];
|
22 [label="Postponed enter to lambda"];
|
||||||
24 [label="Function call: this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(...)" style="filled" fillcolor=yellow];
|
subgraph cluster_9 {
|
||||||
25 [label="Access variable R|<local>/explicitReceiver|"];
|
color=blue
|
||||||
26 [label="Type operator: (R|<local>/explicitReceiver| as R|FirFunctionCall|)"];
|
23 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
27 [label="Function call: this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(...)" style="filled" fillcolor=yellow];
|
subgraph cluster_10 {
|
||||||
28 [label="Exit block"];
|
color=blue
|
||||||
}
|
24 [label="Enter block"];
|
||||||
29 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
25 [label="Access variable this@R|special/anonymous|"];
|
||||||
}
|
26 [label="Function call: this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(...)" style="filled" fillcolor=yellow];
|
||||||
30 [label="Postponed exit from lambda"];
|
27 [label="Access variable R|<local>/explicitReceiver|"];
|
||||||
31 [label="Function call: R|kotlin/with|<R|FirFunctionCall|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
28 [label="Type operator: (R|<local>/explicitReceiver| as R|FirFunctionCall|)"];
|
||||||
32 [label="Exit block"];
|
29 [label="Function call: this@R|special/anonymous|.R|SubstitutionOverride<kotlin/collections/MutableList.add: R|kotlin/Boolean|>|(...)" style="filled" fillcolor=yellow];
|
||||||
}
|
30 [label="Exit block"];
|
||||||
33 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
}
|
||||||
}
|
31 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
34 [label="Postponed exit from lambda"];
|
}
|
||||||
35 [label="Function call: R|kotlin/collections/buildList|<R|FirFunctionCall|>(...)" style="filled" fillcolor=yellow];
|
32 [label="Postponed exit from lambda"];
|
||||||
36 [label="Exit block"];
|
33 [label="Function call: R|kotlin/with|<R|FirFunctionCall|, R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||||
}
|
34 [label="Exit block"];
|
||||||
37 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
}
|
||||||
}
|
35 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
38 [label="Postponed exit from lambda"];
|
}
|
||||||
39 [label="Function call: R|kotlin/with|<R|FirFunctionCall|, R|kotlin/collections/List<FirFunctionCall>|>(...)" style="filled" fillcolor=yellow];
|
36 [label="Postponed exit from lambda"];
|
||||||
40 [label="Variable declaration: lval firstCalls: R|kotlin/collections/List<FirFunctionCall>|"];
|
37 [label="Function call: R|kotlin/collections/buildList|<R|FirFunctionCall|>(...)" style="filled" fillcolor=yellow];
|
||||||
41 [label="Access variable R|<local>/firstCalls|"];
|
38 [label="Exit block"];
|
||||||
42 [label="Jump: ^foo R|<local>/firstCalls|"];
|
}
|
||||||
43 [label="Stub" style="filled" fillcolor=gray];
|
39 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
44 [label="Exit block" style="filled" fillcolor=gray];
|
}
|
||||||
}
|
40 [label="Postponed exit from lambda"];
|
||||||
45 [label="Exit function foo" style="filled" fillcolor=red];
|
41 [label="Function call: R|kotlin/with|<R|FirFunctionCall|, R|kotlin/collections/List<FirFunctionCall>|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
42 [label="Variable declaration: lval firstCalls: R|kotlin/collections/List<FirFunctionCall>|"];
|
||||||
|
43 [label="Access variable R|<local>/firstCalls|"];
|
||||||
|
44 [label="Jump: ^foo R|<local>/firstCalls|"];
|
||||||
|
45 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
46 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
47 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5};
|
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10 39};
|
9 -> {10};
|
||||||
9 -> {38} [style=dotted];
|
|
||||||
9 -> {10} [style=dashed];
|
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12 41};
|
||||||
12 -> {13 35};
|
11 -> {40} [style=dotted];
|
||||||
12 -> {34} [style=dotted];
|
11 -> {12} [style=dashed];
|
||||||
12 -> {13} [style=dashed];
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15 37};
|
||||||
|
14 -> {36} [style=dotted];
|
||||||
|
14 -> {15} [style=dashed];
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21 31};
|
20 -> {21};
|
||||||
20 -> {30} [style=dotted];
|
|
||||||
20 -> {21} [style=dashed];
|
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23 33};
|
||||||
|
22 -> {32} [style=dotted];
|
||||||
|
22 -> {23} [style=dashed];
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
@@ -119,18 +124,20 @@ digraph complexPostponedCfg_kt {
|
|||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35} [color=green];
|
34 -> {35};
|
||||||
34 -> {39} [color=red];
|
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37} [color=green];
|
||||||
|
36 -> {41} [color=red];
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {45};
|
42 -> {43};
|
||||||
42 -> {43} [style=dotted];
|
43 -> {44};
|
||||||
43 -> {44} [style=dotted];
|
44 -> {47};
|
||||||
44 -> {45} [style=dotted];
|
44 -> {45} [style=dotted];
|
||||||
|
45 -> {46} [style=dotted];
|
||||||
|
46 -> {47} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+325
-318
@@ -5,40 +5,45 @@ digraph callsInPlace_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test" style="filled" fillcolor=red];
|
0 [label="Enter file callsInPlace.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file callsInPlace.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
3 [label="Postponed enter to lambda"];
|
subgraph cluster_1 {
|
||||||
subgraph cluster_2 {
|
color=red
|
||||||
color=blue
|
2 [label="Enter function test" style="filled" fillcolor=red];
|
||||||
4 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
subgraph cluster_2 {
|
||||||
subgraph cluster_3 {
|
color=blue
|
||||||
color=blue
|
3 [label="Enter block"];
|
||||||
5 [label="Enter block"];
|
4 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
6 [label="Const: Int(1)"];
|
5 [label="Postponed enter to lambda"];
|
||||||
7 [label="Assignment: R|<local>/x|"];
|
subgraph cluster_3 {
|
||||||
8 [label="Exit block"];
|
color=blue
|
||||||
}
|
6 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
9 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
subgraph cluster_4 {
|
||||||
}
|
color=blue
|
||||||
10 [label="Postponed exit from lambda"];
|
7 [label="Enter block"];
|
||||||
11 [label="Function call: R|kotlin/run|<R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
8 [label="Const: Int(1)"];
|
||||||
12 [label="Access variable R|<local>/x|"];
|
9 [label="Assignment: R|<local>/x|"];
|
||||||
13 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
10 [label="Exit block"];
|
||||||
14 [label="Exit block"];
|
}
|
||||||
}
|
11 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
15 [label="Exit function test" style="filled" fillcolor=red];
|
}
|
||||||
|
12 [label="Postponed exit from lambda"];
|
||||||
|
13 [label="Function call: R|kotlin/run|<R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Access variable R|<local>/x|"];
|
||||||
|
15 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
16 [label="Exit block"];
|
||||||
|
}
|
||||||
|
17 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4 11};
|
3 -> {4};
|
||||||
3 -> {10} [style=dotted];
|
|
||||||
3 -> {4} [style=dashed];
|
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6 13};
|
||||||
|
5 -> {12} [style=dotted];
|
||||||
|
5 -> {6} [style=dashed];
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
@@ -48,124 +53,124 @@ digraph callsInPlace_kt {
|
|||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
|
15 -> {16};
|
||||||
subgraph cluster_4 {
|
|
||||||
color=red
|
|
||||||
16 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
17 [label="Enter block"];
|
|
||||||
18 [label="Const: Int(10)"];
|
|
||||||
19 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_6 {
|
|
||||||
color=blue
|
|
||||||
20 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
21 [label="Enter block"];
|
|
||||||
22 [label="Const: String(test_2)"];
|
|
||||||
23 [label="Exit block"];
|
|
||||||
}
|
|
||||||
24 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
25 [label="Postponed exit from lambda"];
|
|
||||||
26 [label="Function call: R|kotlin/repeat|(...)" style="filled" fillcolor=yellow];
|
|
||||||
27 [label="Exit block"];
|
|
||||||
}
|
|
||||||
28 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
18 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
19 [label="Enter block"];
|
||||||
|
20 [label="Const: Int(10)"];
|
||||||
|
21 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=blue
|
||||||
|
22 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
23 [label="Enter block"];
|
||||||
|
24 [label="Const: String(test_2)"];
|
||||||
|
25 [label="Exit block"];
|
||||||
|
}
|
||||||
|
26 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
27 [label="Postponed exit from lambda"];
|
||||||
|
28 [label="Function call: R|kotlin/repeat|(...)" style="filled" fillcolor=yellow];
|
||||||
|
29 [label="Exit block"];
|
||||||
|
}
|
||||||
|
30 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20 25 26};
|
19 -> {20};
|
||||||
19 -> {20} [style=dashed];
|
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22 27 28};
|
||||||
|
21 -> {22} [style=dashed];
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
25 -> {19} [color=green style=dashed];
|
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
|
27 -> {21} [color=green style=dashed];
|
||||||
subgraph cluster_8 {
|
28 -> {29};
|
||||||
color=red
|
|
||||||
29 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
30 [label="Enter block"];
|
|
||||||
31 [label="Const: Int(10)"];
|
|
||||||
32 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_10 {
|
|
||||||
color=blue
|
|
||||||
33 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter block"];
|
|
||||||
35 [label="Const: String(test_3)"];
|
|
||||||
36 [label="Exit block"];
|
|
||||||
}
|
|
||||||
37 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
38 [label="Postponed exit from lambda"];
|
|
||||||
39 [label="Function call: R|kotlin/repeat|(...)" style="filled" fillcolor=yellow];
|
|
||||||
40 [label="Exit block"];
|
|
||||||
}
|
|
||||||
41 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=red
|
||||||
|
31 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
32 [label="Enter block"];
|
||||||
|
33 [label="Const: Int(10)"];
|
||||||
|
34 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
35 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter block"];
|
||||||
|
37 [label="Const: String(test_3)"];
|
||||||
|
38 [label="Exit block"];
|
||||||
|
}
|
||||||
|
39 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
40 [label="Postponed exit from lambda"];
|
||||||
|
41 [label="Function call: R|kotlin/repeat|(...)" style="filled" fillcolor=yellow];
|
||||||
|
42 [label="Exit block"];
|
||||||
|
}
|
||||||
|
43 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33 38 39};
|
32 -> {33};
|
||||||
32 -> {33} [style=dashed];
|
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35 40 41};
|
||||||
|
34 -> {35} [style=dashed];
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
38 -> {32} [color=green style=dashed];
|
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
|
40 -> {34} [color=green style=dashed];
|
||||||
subgraph cluster_12 {
|
41 -> {42};
|
||||||
color=red
|
|
||||||
42 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
43 [label="Enter block"];
|
|
||||||
44 [label="Const: Int(1)"];
|
|
||||||
45 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
46 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_15 {
|
|
||||||
color=blue
|
|
||||||
47 [label="Enter block"];
|
|
||||||
48 [label="Const: String(test_4)"];
|
|
||||||
49 [label="Access variable R|<local>/it|"];
|
|
||||||
50 [label="Const: Int(0)"];
|
|
||||||
51 [label="Function call: R|<local>/it|.R|kotlin/Int.compareTo|(...)" style="filled" fillcolor=yellow];
|
|
||||||
52 [label="Comparison >"];
|
|
||||||
53 [label="Exit block"];
|
|
||||||
}
|
|
||||||
54 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
55 [label="Postponed exit from lambda"];
|
|
||||||
56 [label="Function call: Int(1).R|kotlin/takeUnless|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
57 [label="Exit block"];
|
|
||||||
}
|
|
||||||
58 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=red
|
||||||
|
44 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
45 [label="Enter block"];
|
||||||
|
46 [label="Const: Int(1)"];
|
||||||
|
47 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
48 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
49 [label="Enter block"];
|
||||||
|
50 [label="Const: String(test_4)"];
|
||||||
|
51 [label="Access variable R|<local>/it|"];
|
||||||
|
52 [label="Const: Int(0)"];
|
||||||
|
53 [label="Function call: R|<local>/it|.R|kotlin/Int.compareTo|(...)" style="filled" fillcolor=yellow];
|
||||||
|
54 [label="Comparison >"];
|
||||||
|
55 [label="Exit block"];
|
||||||
|
}
|
||||||
|
56 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
57 [label="Postponed exit from lambda"];
|
||||||
|
58 [label="Function call: Int(1).R|kotlin/takeUnless|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
59 [label="Exit block"];
|
||||||
|
}
|
||||||
|
60 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46 56};
|
45 -> {46};
|
||||||
45 -> {55} [style=dotted];
|
|
||||||
45 -> {46} [style=dashed];
|
|
||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48 58};
|
||||||
|
47 -> {57} [style=dotted];
|
||||||
|
47 -> {48} [style=dashed];
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
49 -> {50};
|
49 -> {50};
|
||||||
50 -> {51};
|
50 -> {51};
|
||||||
@@ -176,44 +181,44 @@ digraph callsInPlace_kt {
|
|||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
|
58 -> {59};
|
||||||
subgraph cluster_16 {
|
|
||||||
color=red
|
|
||||||
59 [label="Enter function test_5" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_17 {
|
|
||||||
color=blue
|
|
||||||
60 [label="Enter block"];
|
|
||||||
61 [label="Const: Int(1)"];
|
|
||||||
62 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
63 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
64 [label="Enter block"];
|
|
||||||
65 [label="Const: String(test_5)"];
|
|
||||||
66 [label="Access variable R|<local>/it|"];
|
|
||||||
67 [label="Const: Int(0)"];
|
|
||||||
68 [label="Function call: R|<local>/it|.R|kotlin/Int.compareTo|(...)" style="filled" fillcolor=yellow];
|
|
||||||
69 [label="Comparison >"];
|
|
||||||
70 [label="Exit block"];
|
|
||||||
}
|
|
||||||
71 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
72 [label="Postponed exit from lambda"];
|
|
||||||
73 [label="Function call: Int(1).R|kotlin/takeUnless|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
74 [label="Exit block"];
|
|
||||||
}
|
|
||||||
75 [label="Exit function test_5" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
|
||||||
|
subgraph cluster_17 {
|
||||||
|
color=red
|
||||||
|
61 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_18 {
|
||||||
|
color=blue
|
||||||
|
62 [label="Enter block"];
|
||||||
|
63 [label="Const: Int(1)"];
|
||||||
|
64 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
65 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
66 [label="Enter block"];
|
||||||
|
67 [label="Const: String(test_5)"];
|
||||||
|
68 [label="Access variable R|<local>/it|"];
|
||||||
|
69 [label="Const: Int(0)"];
|
||||||
|
70 [label="Function call: R|<local>/it|.R|kotlin/Int.compareTo|(...)" style="filled" fillcolor=yellow];
|
||||||
|
71 [label="Comparison >"];
|
||||||
|
72 [label="Exit block"];
|
||||||
|
}
|
||||||
|
73 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
74 [label="Postponed exit from lambda"];
|
||||||
|
75 [label="Function call: Int(1).R|kotlin/takeUnless|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
76 [label="Exit block"];
|
||||||
|
}
|
||||||
|
77 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63 73};
|
62 -> {63};
|
||||||
62 -> {72} [style=dotted];
|
|
||||||
62 -> {63} [style=dashed];
|
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65 75};
|
||||||
|
64 -> {74} [style=dotted];
|
||||||
|
64 -> {65} [style=dashed];
|
||||||
65 -> {66};
|
65 -> {66};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
@@ -224,189 +229,191 @@ digraph callsInPlace_kt {
|
|||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
|
75 -> {76};
|
||||||
subgraph cluster_20 {
|
|
||||||
color=red
|
|
||||||
76 [label="Enter function myRun" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_21 {
|
|
||||||
color=blue
|
|
||||||
77 [label="Enter block"];
|
|
||||||
78 [label="Function call: R|<local>/block1|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
79 [label="Function call: R|<local>/block2|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
80 [label="Exit block"];
|
|
||||||
}
|
|
||||||
81 [label="Exit function myRun" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=red
|
||||||
|
78 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_22 {
|
||||||
|
color=blue
|
||||||
|
79 [label="Enter block"];
|
||||||
|
80 [label="Function call: R|<local>/block1|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
81 [label="Function call: R|<local>/block2|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
82 [label="Exit block"];
|
||||||
|
}
|
||||||
|
83 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
78 -> {79};
|
78 -> {79};
|
||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
|
81 -> {82};
|
||||||
subgraph cluster_22 {
|
|
||||||
color=red
|
|
||||||
82 [label="Enter function test_6" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_23 {
|
|
||||||
color=blue
|
|
||||||
83 [label="Enter block"];
|
|
||||||
84 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
85 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_25 {
|
|
||||||
color=blue
|
|
||||||
86 [label="Enter block"];
|
|
||||||
87 [label="Const: String(test_6_2)"];
|
|
||||||
88 [label="Exit block"];
|
|
||||||
}
|
|
||||||
89 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_26 {
|
|
||||||
color=blue
|
|
||||||
90 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_27 {
|
|
||||||
color=blue
|
|
||||||
91 [label="Enter block"];
|
|
||||||
92 [label="Const: String(test_6_1)"];
|
|
||||||
93 [label="Exit block"];
|
|
||||||
}
|
|
||||||
94 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
95 [label="Postponed exit from lambda"];
|
|
||||||
96 [label="Postponed exit from lambda"];
|
|
||||||
97 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
98 [label="Exit block"];
|
|
||||||
}
|
|
||||||
99 [label="Exit function test_6" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
|
||||||
84 -> {85 90 95 96 97};
|
subgraph cluster_23 {
|
||||||
84 -> {85 90} [style=dashed];
|
color=red
|
||||||
|
84 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
85 [label="Enter block"];
|
||||||
|
86 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
87 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_26 {
|
||||||
|
color=blue
|
||||||
|
88 [label="Enter block"];
|
||||||
|
89 [label="Const: String(test_6_2)"];
|
||||||
|
90 [label="Exit block"];
|
||||||
|
}
|
||||||
|
91 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_27 {
|
||||||
|
color=blue
|
||||||
|
92 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_28 {
|
||||||
|
color=blue
|
||||||
|
93 [label="Enter block"];
|
||||||
|
94 [label="Const: String(test_6_1)"];
|
||||||
|
95 [label="Exit block"];
|
||||||
|
}
|
||||||
|
96 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
97 [label="Postponed exit from lambda"];
|
||||||
|
98 [label="Postponed exit from lambda"];
|
||||||
|
99 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
100 [label="Exit block"];
|
||||||
|
}
|
||||||
|
101 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87 92 97 98 99};
|
||||||
|
86 -> {87 92} [style=dashed];
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {95};
|
89 -> {90};
|
||||||
90 -> {91};
|
90 -> {91};
|
||||||
91 -> {92};
|
91 -> {97};
|
||||||
92 -> {93};
|
92 -> {93};
|
||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {96};
|
94 -> {95};
|
||||||
95 -> {97};
|
95 -> {96};
|
||||||
95 -> {84} [color=green style=dashed];
|
96 -> {98};
|
||||||
96 -> {97};
|
97 -> {99};
|
||||||
96 -> {84} [color=green style=dashed];
|
97 -> {86} [color=green style=dashed];
|
||||||
97 -> {98};
|
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
|
98 -> {86} [color=green style=dashed];
|
||||||
subgraph cluster_28 {
|
99 -> {100};
|
||||||
color=red
|
|
||||||
100 [label="Enter function test_7" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_29 {
|
|
||||||
color=blue
|
|
||||||
101 [label="Enter block"];
|
|
||||||
102 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_30 {
|
|
||||||
color=blue
|
|
||||||
103 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_31 {
|
|
||||||
color=blue
|
|
||||||
104 [label="Enter block"];
|
|
||||||
105 [label="Const: String(test_7_1)"];
|
|
||||||
106 [label="Exit block"];
|
|
||||||
}
|
|
||||||
107 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
subgraph cluster_32 {
|
|
||||||
color=blue
|
|
||||||
108 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_33 {
|
|
||||||
color=blue
|
|
||||||
109 [label="Enter block"];
|
|
||||||
110 [label="Const: String(test_7_2)"];
|
|
||||||
111 [label="Exit block"];
|
|
||||||
}
|
|
||||||
112 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
113 [label="Postponed exit from lambda"];
|
|
||||||
114 [label="Postponed exit from lambda"];
|
|
||||||
115 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
116 [label="Exit block"];
|
|
||||||
}
|
|
||||||
117 [label="Exit function test_7" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
|
||||||
102 -> {103 108 113 114 115};
|
subgraph cluster_29 {
|
||||||
102 -> {103 108} [style=dashed];
|
color=red
|
||||||
|
102 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_30 {
|
||||||
|
color=blue
|
||||||
|
103 [label="Enter block"];
|
||||||
|
104 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_31 {
|
||||||
|
color=blue
|
||||||
|
105 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_32 {
|
||||||
|
color=blue
|
||||||
|
106 [label="Enter block"];
|
||||||
|
107 [label="Const: String(test_7_1)"];
|
||||||
|
108 [label="Exit block"];
|
||||||
|
}
|
||||||
|
109 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_33 {
|
||||||
|
color=blue
|
||||||
|
110 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_34 {
|
||||||
|
color=blue
|
||||||
|
111 [label="Enter block"];
|
||||||
|
112 [label="Const: String(test_7_2)"];
|
||||||
|
113 [label="Exit block"];
|
||||||
|
}
|
||||||
|
114 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
115 [label="Postponed exit from lambda"];
|
||||||
|
116 [label="Postponed exit from lambda"];
|
||||||
|
117 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
118 [label="Exit block"];
|
||||||
|
}
|
||||||
|
119 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
102 -> {103};
|
||||||
103 -> {104};
|
103 -> {104};
|
||||||
104 -> {105};
|
104 -> {105 110 115 116 117};
|
||||||
|
104 -> {105 110} [style=dashed];
|
||||||
105 -> {106};
|
105 -> {106};
|
||||||
106 -> {107};
|
106 -> {107};
|
||||||
107 -> {113};
|
107 -> {108};
|
||||||
108 -> {109};
|
108 -> {109};
|
||||||
109 -> {110};
|
109 -> {115};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
112 -> {114};
|
112 -> {113};
|
||||||
113 -> {115};
|
113 -> {114};
|
||||||
113 -> {102} [color=green style=dashed];
|
114 -> {116};
|
||||||
114 -> {115};
|
115 -> {117};
|
||||||
114 -> {102} [color=green style=dashed];
|
115 -> {104} [color=green style=dashed];
|
||||||
115 -> {116};
|
|
||||||
116 -> {117};
|
116 -> {117};
|
||||||
|
116 -> {104} [color=green style=dashed];
|
||||||
subgraph cluster_34 {
|
117 -> {118};
|
||||||
color=red
|
|
||||||
118 [label="Enter function myDummyRun" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_35 {
|
|
||||||
color=blue
|
|
||||||
119 [label="Enter block"];
|
|
||||||
120 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
121 [label="Exit block"];
|
|
||||||
}
|
|
||||||
122 [label="Exit function myDummyRun" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
118 -> {119};
|
118 -> {119};
|
||||||
119 -> {120};
|
|
||||||
|
subgraph cluster_35 {
|
||||||
|
color=red
|
||||||
|
120 [label="Enter function myDummyRun" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_36 {
|
||||||
|
color=blue
|
||||||
|
121 [label="Enter block"];
|
||||||
|
122 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
123 [label="Exit block"];
|
||||||
|
}
|
||||||
|
124 [label="Exit function myDummyRun" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
120 -> {121};
|
120 -> {121};
|
||||||
121 -> {122};
|
121 -> {122};
|
||||||
|
122 -> {123};
|
||||||
subgraph cluster_36 {
|
|
||||||
color=red
|
|
||||||
123 [label="Enter function test_8" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_37 {
|
|
||||||
color=blue
|
|
||||||
124 [label="Enter block"];
|
|
||||||
125 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_38 {
|
|
||||||
color=blue
|
|
||||||
126 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_39 {
|
|
||||||
color=blue
|
|
||||||
127 [label="Enter block"];
|
|
||||||
128 [label="Const: String(test_8)"];
|
|
||||||
129 [label="Exit block"];
|
|
||||||
}
|
|
||||||
130 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
131 [label="Postponed exit from lambda"];
|
|
||||||
132 [label="Function call: R|/myDummyRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
133 [label="Exit block"];
|
|
||||||
}
|
|
||||||
134 [label="Exit function test_8" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
123 -> {124};
|
123 -> {124};
|
||||||
124 -> {125};
|
|
||||||
125 -> {126 131 132};
|
subgraph cluster_37 {
|
||||||
125 -> {126} [style=dashed];
|
color=red
|
||||||
|
125 [label="Enter function test_8" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_38 {
|
||||||
|
color=blue
|
||||||
|
126 [label="Enter block"];
|
||||||
|
127 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_39 {
|
||||||
|
color=blue
|
||||||
|
128 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_40 {
|
||||||
|
color=blue
|
||||||
|
129 [label="Enter block"];
|
||||||
|
130 [label="Const: String(test_8)"];
|
||||||
|
131 [label="Exit block"];
|
||||||
|
}
|
||||||
|
132 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
133 [label="Postponed exit from lambda"];
|
||||||
|
134 [label="Function call: R|/myDummyRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
135 [label="Exit block"];
|
||||||
|
}
|
||||||
|
136 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
125 -> {126};
|
||||||
126 -> {127};
|
126 -> {127};
|
||||||
127 -> {128};
|
127 -> {128 133 134};
|
||||||
|
127 -> {128} [style=dashed];
|
||||||
128 -> {129};
|
128 -> {129};
|
||||||
129 -> {130};
|
129 -> {130};
|
||||||
|
130 -> {131};
|
||||||
131 -> {132};
|
131 -> {132};
|
||||||
132 -> {133};
|
|
||||||
133 -> {134};
|
133 -> {134};
|
||||||
|
134 -> {135};
|
||||||
|
135 -> {136};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+176
-169
@@ -5,22 +5,27 @@ digraph conditionalEffects_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
0 [label="Enter file conditionalEffects.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file conditionalEffects.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
2 [label="Access variable R|<local>/x|"];
|
|
||||||
3 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
subgraph cluster_1 {
|
||||||
4 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
color=red
|
||||||
5 [label="Access variable R|<local>/x|"];
|
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
6 [label="Smart cast: R|<local>/x|"];
|
subgraph cluster_2 {
|
||||||
7 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
8 [label="Exit block"];
|
3 [label="Enter block"];
|
||||||
}
|
4 [label="Access variable R|<local>/x|"];
|
||||||
9 [label="Exit function test_1" style="filled" fillcolor=red];
|
5 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
||||||
|
6 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
||||||
|
7 [label="Access variable R|<local>/x|"];
|
||||||
|
8 [label="Smart cast: R|<local>/x|"];
|
||||||
|
9 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
10 [label="Exit block"];
|
||||||
|
}
|
||||||
|
11 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
@@ -28,50 +33,50 @@ digraph conditionalEffects_kt {
|
|||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
|
9 -> {10};
|
||||||
subgraph cluster_2 {
|
|
||||||
color=red
|
|
||||||
10 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_3 {
|
|
||||||
color=blue
|
|
||||||
11 [label="Enter block"];
|
|
||||||
12 [label="Access variable R|<local>/x|"];
|
|
||||||
13 [label="Function call: R|kotlin/requireNotNull|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
|
||||||
14 [label="Access variable R|<local>/x|"];
|
|
||||||
15 [label="Smart cast: R|<local>/x|"];
|
|
||||||
16 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
17 [label="Exit block"];
|
|
||||||
}
|
|
||||||
18 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
12 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
13 [label="Enter block"];
|
||||||
|
14 [label="Access variable R|<local>/x|"];
|
||||||
|
15 [label="Function call: R|kotlin/requireNotNull|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||||
|
16 [label="Access variable R|<local>/x|"];
|
||||||
|
17 [label="Smart cast: R|<local>/x|"];
|
||||||
|
18 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
19 [label="Exit block"];
|
||||||
|
}
|
||||||
|
20 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
|
18 -> {19};
|
||||||
subgraph cluster_4 {
|
|
||||||
color=red
|
|
||||||
19 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
20 [label="Enter block"];
|
|
||||||
21 [label="Access variable R|<local>/x|"];
|
|
||||||
22 [label="Const: Null(null)"];
|
|
||||||
23 [label="Equality operator !="];
|
|
||||||
24 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
|
||||||
25 [label="Access variable R|<local>/x|"];
|
|
||||||
26 [label="Smart cast: R|<local>/x|"];
|
|
||||||
27 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=red
|
||||||
|
21 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
22 [label="Enter block"];
|
||||||
|
23 [label="Access variable R|<local>/x|"];
|
||||||
|
24 [label="Const: Null(null)"];
|
||||||
|
25 [label="Equality operator !="];
|
||||||
|
26 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Access variable R|<local>/x|"];
|
||||||
|
28 [label="Smart cast: R|<local>/x|"];
|
||||||
|
29 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
@@ -80,44 +85,44 @@ digraph conditionalEffects_kt {
|
|||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
30 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
32 [label="Enter &&"];
|
|
||||||
33 [label="Access variable R|<local>/x|"];
|
|
||||||
34 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
35 [label="Exit left part of &&"];
|
|
||||||
36 [label="Enter right part of &&"];
|
|
||||||
37 [label="Access variable R|<local>/y|"];
|
|
||||||
38 [label="Const: Null(null)"];
|
|
||||||
39 [label="Equality operator !="];
|
|
||||||
40 [label="Exit &&"];
|
|
||||||
}
|
|
||||||
41 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
|
||||||
42 [label="Access variable R|<local>/x|"];
|
|
||||||
43 [label="Smart cast: R|<local>/x|"];
|
|
||||||
44 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
45 [label="Access variable R|<local>/y|"];
|
|
||||||
46 [label="Smart cast: R|<local>/y|"];
|
|
||||||
47 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
48 [label="Exit block"];
|
|
||||||
}
|
|
||||||
49 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
32 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
34 [label="Enter &&"];
|
||||||
|
35 [label="Access variable R|<local>/x|"];
|
||||||
|
36 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
|
37 [label="Exit left part of &&"];
|
||||||
|
38 [label="Enter right part of &&"];
|
||||||
|
39 [label="Access variable R|<local>/y|"];
|
||||||
|
40 [label="Const: Null(null)"];
|
||||||
|
41 [label="Equality operator !="];
|
||||||
|
42 [label="Exit &&"];
|
||||||
|
}
|
||||||
|
43 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Access variable R|<local>/x|"];
|
||||||
|
45 [label="Smart cast: R|<local>/x|"];
|
||||||
|
46 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
47 [label="Access variable R|<local>/y|"];
|
||||||
|
48 [label="Smart cast: R|<local>/y|"];
|
||||||
|
49 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
50 [label="Exit block"];
|
||||||
|
}
|
||||||
|
51 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36 40};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38 42};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
@@ -129,73 +134,73 @@ digraph conditionalEffects_kt {
|
|||||||
46 -> {47};
|
46 -> {47};
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
|
49 -> {50};
|
||||||
|
50 -> {51};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
50 [label="Enter function test_5" style="filled" fillcolor=red];
|
52 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
51 [label="Enter block"];
|
53 [label="Enter block"];
|
||||||
subgraph cluster_11 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
52 [label="Enter when"];
|
54 [label="Enter when"];
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
53 [label="Enter when branch condition "];
|
|
||||||
54 [label="Access variable R|<local>/b|"];
|
|
||||||
55 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_13 {
|
subgraph cluster_13 {
|
||||||
color=blue
|
color=blue
|
||||||
56 [label="Enter when branch condition else"];
|
55 [label="Enter when branch condition "];
|
||||||
|
56 [label="Access variable R|<local>/b|"];
|
||||||
57 [label="Exit when branch condition"];
|
57 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
58 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
59 [label="Enter block"];
|
58 [label="Enter when branch condition else"];
|
||||||
60 [label="Access variable R|<local>/x|"];
|
59 [label="Exit when branch condition"];
|
||||||
61 [label="Access variable <Unresolved name: length>#"];
|
|
||||||
62 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
63 [label="Exit when branch result"];
|
60 [label="Enter when branch result"];
|
||||||
64 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
65 [label="Enter block"];
|
61 [label="Enter block"];
|
||||||
66 [label="Access variable R|<local>/x|"];
|
62 [label="Access variable R|<local>/x|"];
|
||||||
67 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
63 [label="Access variable <Unresolved name: length>#"];
|
||||||
68 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
64 [label="Exit block"];
|
||||||
69 [label="Access variable R|<local>/x|"];
|
|
||||||
70 [label="Smart cast: R|<local>/x|"];
|
|
||||||
71 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
72 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
73 [label="Exit when branch result"];
|
65 [label="Exit when branch result"];
|
||||||
74 [label="Exit when"];
|
66 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_16 {
|
||||||
|
color=blue
|
||||||
|
67 [label="Enter block"];
|
||||||
|
68 [label="Access variable R|<local>/x|"];
|
||||||
|
69 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
|
70 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
||||||
|
71 [label="Access variable R|<local>/x|"];
|
||||||
|
72 [label="Smart cast: R|<local>/x|"];
|
||||||
|
73 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
74 [label="Exit block"];
|
||||||
|
}
|
||||||
|
75 [label="Exit when branch result"];
|
||||||
|
76 [label="Exit when"];
|
||||||
}
|
}
|
||||||
75 [label="Access variable R|<local>/x|"];
|
77 [label="Access variable R|<local>/x|"];
|
||||||
76 [label="Access variable <Unresolved name: length>#"];
|
78 [label="Access variable <Unresolved name: length>#"];
|
||||||
77 [label="Exit block"];
|
79 [label="Exit block"];
|
||||||
}
|
}
|
||||||
78 [label="Exit function test_5" style="filled" fillcolor=red];
|
80 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
50 -> {51};
|
|
||||||
51 -> {52};
|
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56 64};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58 66};
|
||||||
58 -> {59};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {61};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {74};
|
63 -> {64};
|
||||||
64 -> {65};
|
64 -> {65};
|
||||||
65 -> {66};
|
65 -> {76};
|
||||||
66 -> {67};
|
66 -> {67};
|
||||||
67 -> {68};
|
67 -> {68};
|
||||||
68 -> {69};
|
68 -> {69};
|
||||||
@@ -208,70 +213,70 @@ digraph conditionalEffects_kt {
|
|||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
77 -> {78};
|
77 -> {78};
|
||||||
|
78 -> {79};
|
||||||
|
79 -> {80};
|
||||||
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_17 {
|
||||||
color=red
|
color=red
|
||||||
79 [label="Enter function test_6" style="filled" fillcolor=red];
|
81 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||||
subgraph cluster_17 {
|
subgraph cluster_18 {
|
||||||
color=blue
|
color=blue
|
||||||
80 [label="Enter block"];
|
82 [label="Enter block"];
|
||||||
subgraph cluster_18 {
|
subgraph cluster_19 {
|
||||||
color=blue
|
color=blue
|
||||||
81 [label="Enter when"];
|
83 [label="Enter when"];
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
82 [label="Enter when branch condition "];
|
|
||||||
83 [label="Access variable R|<local>/b|"];
|
|
||||||
84 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_20 {
|
subgraph cluster_20 {
|
||||||
color=blue
|
color=blue
|
||||||
85 [label="Enter when branch condition else"];
|
84 [label="Enter when branch condition "];
|
||||||
|
85 [label="Access variable R|<local>/b|"];
|
||||||
86 [label="Exit when branch condition"];
|
86 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
87 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_21 {
|
subgraph cluster_21 {
|
||||||
color=blue
|
color=blue
|
||||||
88 [label="Enter block"];
|
87 [label="Enter when branch condition else"];
|
||||||
89 [label="Access variable R|<local>/x|"];
|
88 [label="Exit when branch condition"];
|
||||||
90 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
|
||||||
91 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
|
||||||
92 [label="Access variable R|<local>/x|"];
|
|
||||||
93 [label="Smart cast: R|<local>/x|"];
|
|
||||||
94 [label="Access variable R|kotlin/String.length|"];
|
|
||||||
95 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
96 [label="Exit when branch result"];
|
89 [label="Enter when branch result"];
|
||||||
97 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
98 [label="Enter block"];
|
90 [label="Enter block"];
|
||||||
99 [label="Access variable R|<local>/x|"];
|
91 [label="Access variable R|<local>/x|"];
|
||||||
100 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
92 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
101 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
93 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
||||||
102 [label="Access variable R|<local>/x|"];
|
94 [label="Access variable R|<local>/x|"];
|
||||||
103 [label="Smart cast: R|<local>/x|"];
|
95 [label="Smart cast: R|<local>/x|"];
|
||||||
104 [label="Access variable R|kotlin/String.length|"];
|
96 [label="Access variable R|kotlin/String.length|"];
|
||||||
105 [label="Exit block"];
|
97 [label="Exit block"];
|
||||||
}
|
}
|
||||||
106 [label="Exit when branch result"];
|
98 [label="Exit when branch result"];
|
||||||
107 [label="Exit when"];
|
99 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
100 [label="Enter block"];
|
||||||
|
101 [label="Access variable R|<local>/x|"];
|
||||||
|
102 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||||
|
103 [label="Function call: R|kotlin/require|(...)" style="filled" fillcolor=yellow];
|
||||||
|
104 [label="Access variable R|<local>/x|"];
|
||||||
|
105 [label="Smart cast: R|<local>/x|"];
|
||||||
|
106 [label="Access variable R|kotlin/String.length|"];
|
||||||
|
107 [label="Exit block"];
|
||||||
|
}
|
||||||
|
108 [label="Exit when branch result"];
|
||||||
|
109 [label="Exit when"];
|
||||||
}
|
}
|
||||||
108 [label="Access variable R|<local>/x|"];
|
110 [label="Access variable R|<local>/x|"];
|
||||||
109 [label="Smart cast: R|<local>/x|"];
|
111 [label="Smart cast: R|<local>/x|"];
|
||||||
110 [label="Access variable R|kotlin/String.length|"];
|
112 [label="Access variable R|kotlin/String.length|"];
|
||||||
111 [label="Exit block"];
|
113 [label="Exit block"];
|
||||||
}
|
}
|
||||||
112 [label="Exit function test_6" style="filled" fillcolor=red];
|
114 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
79 -> {80};
|
|
||||||
80 -> {81};
|
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {83};
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85 97};
|
84 -> {85};
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87 99};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
88 -> {89};
|
88 -> {89};
|
||||||
89 -> {90};
|
89 -> {90};
|
||||||
@@ -281,9 +286,9 @@ digraph conditionalEffects_kt {
|
|||||||
93 -> {94};
|
93 -> {94};
|
||||||
94 -> {95};
|
94 -> {95};
|
||||||
95 -> {96};
|
95 -> {96};
|
||||||
96 -> {107};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {109};
|
||||||
99 -> {100};
|
99 -> {100};
|
||||||
100 -> {101};
|
100 -> {101};
|
||||||
101 -> {102};
|
101 -> {102};
|
||||||
@@ -297,5 +302,7 @@ digraph conditionalEffects_kt {
|
|||||||
109 -> {110};
|
109 -> {110};
|
||||||
110 -> {111};
|
110 -> {111};
|
||||||
111 -> {112};
|
111 -> {112};
|
||||||
|
112 -> {113};
|
||||||
|
113 -> {114};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+67
-60
@@ -5,102 +5,109 @@ digraph inAnonymousObject_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
0 [label="Enter file inAnonymousObject.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file inAnonymousObject.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
2 [label="Enter block"];
|
|
||||||
3 [label="Exit block"];
|
|
||||||
}
|
|
||||||
4 [label="Enter anonymous object"];
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
4 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
5 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
6 [label="Enter property" style="filled" fillcolor=red];
|
6 [label="Enter anonymous object"];
|
||||||
7 [label="Access variable R|<local>/a|"];
|
subgraph cluster_4 {
|
||||||
8 [label="Exit property" style="filled" fillcolor=red];
|
color=blue
|
||||||
}
|
7 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter init block" style="filled" fillcolor=red];
|
8 [label="Enter property" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
9 [label="Access variable R|<local>/a|"];
|
||||||
color=blue
|
10 [label="Exit property" style="filled" fillcolor=red];
|
||||||
10 [label="Enter block"];
|
|
||||||
11 [label="Access variable R|<local>/b|"];
|
|
||||||
12 [label="Assignment: R|/<anonymous>.leaked|"];
|
|
||||||
13 [label="Exit block"];
|
|
||||||
}
|
|
||||||
14 [label="Exit init block" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_7 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter function <init>" style="filled" fillcolor=red];
|
11 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
16 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
subgraph cluster_7 {
|
||||||
17 [label="Exit function <init>" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
13 [label="Access variable R|<local>/b|"];
|
||||||
|
14 [label="Assignment: R|/<anonymous>.leaked|"];
|
||||||
|
15 [label="Exit block"];
|
||||||
|
}
|
||||||
|
16 [label="Exit init block" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
18 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
18 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
19 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
20 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
19 [label="Exit anonymous object expression"];
|
21 [label="Exit anonymous object expression"];
|
||||||
20 [label="Variable declaration: lval obj: R|<anonymous>|"];
|
22 [label="Variable declaration: lval obj: R|<anonymous>|"];
|
||||||
21 [label="Access variable R|<local>/obj|"];
|
23 [label="Access variable R|<local>/obj|"];
|
||||||
22 [label="Function call: R|<local>/obj|.R|/<anonymous>.run|()" style="filled" fillcolor=yellow];
|
24 [label="Function call: R|<local>/obj|.R|/<anonymous>.run|()" style="filled" fillcolor=yellow];
|
||||||
23 [label="Function call: R|<local>/d|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
25 [label="Function call: R|<local>/d|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
24 [label="Exit block"];
|
26 [label="Exit block"];
|
||||||
}
|
}
|
||||||
25 [label="Exit function foo" style="filled" fillcolor=red];
|
27 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_8 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
26 [label="Enter function run" style="filled" fillcolor=red];
|
28 [label="Enter function run" style="filled" fillcolor=red];
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter block"];
|
29 [label="Enter block"];
|
||||||
28 [label="Function call: R|<local>/c|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
30 [label="Function call: R|<local>/c|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
29 [label="Exit block"];
|
31 [label="Exit block"];
|
||||||
}
|
}
|
||||||
30 [label="Exit function run" style="filled" fillcolor=red];
|
32 [label="Exit function run" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
4 -> {19} [style=dotted];
|
|
||||||
4 -> {5} [style=dashed];
|
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
5 -> {9 15 26} [color=red];
|
|
||||||
5 -> {18} [style=dotted];
|
|
||||||
5 -> {6 9 15} [style=dashed];
|
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
|
6 -> {21} [style=dotted];
|
||||||
|
6 -> {7} [style=dashed];
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9} [color=green];
|
7 -> {11 17 28} [color=red];
|
||||||
8 -> {18} [color=red];
|
7 -> {20} [style=dotted];
|
||||||
|
7 -> {8 11 17} [style=dashed];
|
||||||
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11} [color=green];
|
||||||
|
10 -> {20} [color=red];
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15} [color=green];
|
14 -> {15};
|
||||||
14 -> {18} [color=red];
|
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17} [color=green];
|
||||||
|
16 -> {20} [color=red];
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
18 -> {26} [color=green];
|
|
||||||
18 -> {26} [style=dashed];
|
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
|
20 -> {28} [color=green];
|
||||||
|
20 -> {28} [style=dashed];
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+73
-66
@@ -5,103 +5,110 @@ digraph inLocalClass_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
0 [label="Enter file inLocalClass.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file inLocalClass.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
2 [label="Enter block"];
|
|
||||||
3 [label="Exit block"];
|
|
||||||
}
|
|
||||||
4 [label="Local class declaration"];
|
|
||||||
5 [label="Function call: R|<local>/LocalClass.LocalClass|()" style="filled" fillcolor=yellow];
|
|
||||||
6 [label="Function call: R|<local>/LocalClass.LocalClass|().R|<local>/run|()" style="filled" fillcolor=yellow];
|
|
||||||
7 [label="Function call: R|<local>/e|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
8 [label="Exit block"];
|
|
||||||
}
|
|
||||||
9 [label="Exit function foo" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_3 {
|
0 -> {1} [color=green];
|
||||||
color=blue
|
|
||||||
10 [label="Enter class LocalClass" style="filled" fillcolor=red];
|
subgraph cluster_1 {
|
||||||
subgraph cluster_4 {
|
color=red
|
||||||
|
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
11 [label="Enter property" style="filled" fillcolor=red];
|
3 [label="Enter block"];
|
||||||
12 [label="Access variable R|<local>/a|"];
|
subgraph cluster_3 {
|
||||||
13 [label="Exit property" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Local class declaration"];
|
||||||
|
7 [label="Function call: R|<local>/LocalClass.LocalClass|()" style="filled" fillcolor=yellow];
|
||||||
|
8 [label="Function call: R|<local>/LocalClass.LocalClass|().R|<local>/run|()" style="filled" fillcolor=yellow];
|
||||||
|
9 [label="Function call: R|<local>/e|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
10 [label="Exit block"];
|
||||||
}
|
}
|
||||||
|
11 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter class LocalClass" style="filled" fillcolor=red];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter init block" style="filled" fillcolor=red];
|
13 [label="Enter property" style="filled" fillcolor=red];
|
||||||
subgraph cluster_6 {
|
14 [label="Access variable R|<local>/a|"];
|
||||||
color=blue
|
15 [label="Exit property" style="filled" fillcolor=red];
|
||||||
15 [label="Enter block"];
|
|
||||||
16 [label="Access variable R|<local>/c|"];
|
|
||||||
17 [label="Assignment: R|<local>/leaked|"];
|
|
||||||
18 [label="Exit block"];
|
|
||||||
}
|
|
||||||
19 [label="Exit init block" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
subgraph cluster_7 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
20 [label="Enter function <init>" style="filled" fillcolor=red];
|
16 [label="Enter init block" style="filled" fillcolor=red];
|
||||||
21 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
subgraph cluster_7 {
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
color=blue
|
||||||
22 [label="Enter block"];
|
17 [label="Enter block"];
|
||||||
23 [label="Function call: R|<local>/b|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
18 [label="Access variable R|<local>/c|"];
|
||||||
24 [label="Exit block"];
|
19 [label="Assignment: R|<local>/leaked|"];
|
||||||
|
20 [label="Exit block"];
|
||||||
}
|
}
|
||||||
25 [label="Exit function <init>" style="filled" fillcolor=red];
|
21 [label="Exit init block" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
26 [label="Exit class LocalClass" style="filled" fillcolor=red];
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
22 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||||
|
23 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter block"];
|
||||||
|
25 [label="Function call: R|<local>/b|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
26 [label="Exit block"];
|
||||||
|
}
|
||||||
|
27 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
28 [label="Exit class LocalClass" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter function run" style="filled" fillcolor=red];
|
29 [label="Enter function run" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
28 [label="Enter block"];
|
30 [label="Enter block"];
|
||||||
29 [label="Function call: R|<local>/d|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
31 [label="Function call: R|<local>/d|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
30 [label="Exit block"];
|
32 [label="Exit block"];
|
||||||
}
|
}
|
||||||
31 [label="Exit function run" style="filled" fillcolor=red];
|
33 [label="Exit function run" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5 10};
|
4 -> {5};
|
||||||
4 -> {10} [style=dashed];
|
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7 12};
|
||||||
|
6 -> {12} [style=dashed];
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
10 -> {14 20 27} [color=red];
|
|
||||||
10 -> {26} [style=dotted];
|
|
||||||
10 -> {11 14 20} [style=dashed];
|
|
||||||
11 -> {12};
|
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14} [color=green];
|
12 -> {16 22 29} [color=red];
|
||||||
|
12 -> {28} [style=dotted];
|
||||||
|
12 -> {13 16 22} [style=dashed];
|
||||||
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16} [color=green];
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20} [color=green];
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22} [color=green];
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26} [color=green];
|
25 -> {26};
|
||||||
26 -> {27} [color=green];
|
26 -> {27};
|
||||||
26 -> {27} [style=dashed];
|
27 -> {28} [color=green];
|
||||||
27 -> {28};
|
28 -> {29} [color=green];
|
||||||
28 -> {29};
|
28 -> {29} [style=dashed];
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-26
@@ -5,49 +5,56 @@ digraph inLocalFunction_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
0 [label="Enter file inLocalFunction.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file inLocalFunction.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
2 [label="Enter block"];
|
4 [label="Enter block"];
|
||||||
3 [label="Exit block"];
|
5 [label="Exit block"];
|
||||||
}
|
}
|
||||||
4 [label="Local function declaration"];
|
6 [label="Local function declaration"];
|
||||||
5 [label="Function call: R|<local>/localFun|()" style="filled" fillcolor=yellow];
|
7 [label="Function call: R|<local>/localFun|()" style="filled" fillcolor=yellow];
|
||||||
6 [label="Function call: R|<local>/b|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
8 [label="Function call: R|<local>/b|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
7 [label="Exit block"];
|
9 [label="Exit block"];
|
||||||
}
|
}
|
||||||
8 [label="Exit function foo" style="filled" fillcolor=red];
|
10 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter function localFun" style="filled" fillcolor=red];
|
11 [label="Enter function localFun" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
12 [label="Enter block"];
|
||||||
11 [label="Access variable R|<local>/a|"];
|
13 [label="Access variable R|<local>/a|"];
|
||||||
12 [label="Function call: R|<local>/a|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
14 [label="Function call: R|<local>/a|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
13 [label="Function call: R|<local>/a|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
15 [label="Function call: R|<local>/a|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
14 [label="Exit block"];
|
16 [label="Exit block"];
|
||||||
}
|
}
|
||||||
15 [label="Exit function localFun" style="filled" fillcolor=red];
|
17 [label="Exit function localFun" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5 9};
|
4 -> {5};
|
||||||
4 -> {9} [style=dashed];
|
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7 11};
|
||||||
|
6 -> {11} [style=dashed];
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
|
15 -> {16};
|
||||||
|
16 -> {17};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+60
-53
@@ -5,91 +5,96 @@ digraph toLocalVariables_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function bar" style="filled" fillcolor=red];
|
0 [label="Enter file toLocalVariables.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file toLocalVariables.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
|
||||||
1 [label="Enter block"];
|
|
||||||
2 [label="Exit block"];
|
|
||||||
}
|
|
||||||
3 [label="Exit function bar" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
0 -> {1};
|
0 -> {1} [color=green];
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
|
||||||
|
|
||||||
subgraph cluster_2 {
|
subgraph cluster_1 {
|
||||||
color=red
|
color=red
|
||||||
4 [label="Enter function foo" style="filled" fillcolor=red];
|
2 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
subgraph cluster_3 {
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
5 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
4 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
6 [label="Enter block"];
|
5 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
7 [label="Exit block"];
|
}
|
||||||
}
|
2 -> {3};
|
||||||
|
3 -> {4};
|
||||||
|
4 -> {5};
|
||||||
|
|
||||||
|
subgraph cluster_3 {
|
||||||
|
color=red
|
||||||
|
6 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=blue
|
||||||
|
7 [label="Enter block"];
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
8 [label="Enter when"];
|
8 [label="Enter block"];
|
||||||
subgraph cluster_6 {
|
9 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
9 [label="Enter when branch condition "];
|
subgraph cluster_6 {
|
||||||
10 [label="Const: Boolean(true)"];
|
color=blue
|
||||||
11 [label="Exit when branch condition"];
|
10 [label="Enter when"];
|
||||||
}
|
|
||||||
subgraph cluster_7 {
|
subgraph cluster_7 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter when branch condition else"];
|
11 [label="Enter when branch condition "];
|
||||||
|
12 [label="Const: Boolean(true)"];
|
||||||
13 [label="Exit when branch condition"];
|
13 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
14 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
15 [label="Enter block"];
|
14 [label="Enter when branch condition else"];
|
||||||
16 [label="Access variable R|<local>/y|"];
|
15 [label="Exit when branch condition"];
|
||||||
17 [label="Variable declaration: lval yCopy: R|() -> kotlin/Unit|"];
|
|
||||||
18 [label="Function call: R|<local>/yCopy|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
19 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
20 [label="Exit when branch result"];
|
16 [label="Enter when branch result"];
|
||||||
21 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
22 [label="Enter block"];
|
17 [label="Enter block"];
|
||||||
23 [label="Access variable R|<local>/x|"];
|
18 [label="Access variable R|<local>/y|"];
|
||||||
24 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
19 [label="Variable declaration: lval yCopy: R|() -> kotlin/Unit|"];
|
||||||
25 [label="Exit block"];
|
20 [label="Function call: R|<local>/yCopy|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
21 [label="Exit block"];
|
||||||
}
|
}
|
||||||
26 [label="Exit when branch result"];
|
22 [label="Exit when branch result"];
|
||||||
27 [label="Exit when"];
|
23 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
24 [label="Enter block"];
|
||||||
|
25 [label="Access variable R|<local>/x|"];
|
||||||
|
26 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
|
27 [label="Exit block"];
|
||||||
|
}
|
||||||
|
28 [label="Exit when branch result"];
|
||||||
|
29 [label="Exit when"];
|
||||||
}
|
}
|
||||||
28 [label="Variable declaration: lval zCopy: R|() -> kotlin/Unit|"];
|
30 [label="Variable declaration: lval zCopy: R|() -> kotlin/Unit|"];
|
||||||
29 [label="Access variable R|<local>/z|"];
|
31 [label="Access variable R|<local>/z|"];
|
||||||
30 [label="Assignment: R|<local>/zCopy|"];
|
32 [label="Assignment: R|<local>/zCopy|"];
|
||||||
31 [label="Function call: R|<local>/zCopy|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
33 [label="Function call: R|<local>/zCopy|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
32 [label="Exit block"];
|
34 [label="Exit block"];
|
||||||
}
|
}
|
||||||
33 [label="Exit function foo" style="filled" fillcolor=red];
|
35 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
4 -> {5};
|
|
||||||
5 -> {6};
|
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12 21};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14 23};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18};
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {27};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {29};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
@@ -100,5 +105,7 @@ digraph toLocalVariables_kt {
|
|||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
|
33 -> {34};
|
||||||
|
34 -> {35};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+110
-103
@@ -5,142 +5,149 @@ digraph atLeastOnce_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
0 [label="Enter file atLeastOnce.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file atLeastOnce.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter block"];
|
color=red
|
||||||
3 [label="Exit block"];
|
2 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
5 [label="Exit block"];
|
3 [label="Enter block"];
|
||||||
}
|
subgraph cluster_3 {
|
||||||
6 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
7 [label="Exit block"];
|
||||||
|
}
|
||||||
|
8 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
subgraph cluster_3 {
|
|
||||||
color=red
|
|
||||||
7 [label="Enter function myRun" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter block"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Exit block"];
|
|
||||||
}
|
|
||||||
11 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
12 [label="Exit block"];
|
|
||||||
}
|
|
||||||
13 [label="Exit function myRun" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
12 [label="Exit block"];
|
||||||
|
}
|
||||||
|
13 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
15 [label="Enter block"];
|
|
||||||
16 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
17 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
18 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
20 [label="Const: Int(1)"];
|
|
||||||
21 [label="Assignment: R|<local>/x|"];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
24 [label="Postponed exit from lambda"];
|
|
||||||
25 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Access variable R|<local>/x|"];
|
|
||||||
27 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter block"];
|
||||||
|
18 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
19 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
21 [label="Enter block"];
|
||||||
|
22 [label="Const: Int(1)"];
|
||||||
|
23 [label="Assignment: R|<local>/x|"];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
26 [label="Postponed exit from lambda"];
|
||||||
|
27 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Access variable R|<local>/x|"];
|
||||||
|
29 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 25};
|
17 -> {18};
|
||||||
17 -> {24} [style=dotted];
|
|
||||||
17 -> {18} [style=dashed];
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20 27};
|
||||||
|
19 -> {26} [style=dotted];
|
||||||
|
19 -> {20} [style=dashed];
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
24 -> {17} [color=green style=dashed];
|
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
|
26 -> {19} [color=green style=dashed];
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
subgraph cluster_10 {
|
|
||||||
color=red
|
|
||||||
30 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
32 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
33 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter block"];
|
|
||||||
36 [label="Const: Int(1)"];
|
|
||||||
37 [label="Assignment: R|<local>/x|"];
|
|
||||||
38 [label="Exit block"];
|
|
||||||
}
|
|
||||||
39 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
40 [label="Postponed exit from lambda"];
|
|
||||||
41 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
42 [label="Access variable R|<local>/x|"];
|
|
||||||
43 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
|
||||||
45 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=red
|
||||||
|
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
34 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
35 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
37 [label="Enter block"];
|
||||||
|
38 [label="Const: Int(1)"];
|
||||||
|
39 [label="Assignment: R|<local>/x|"];
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
42 [label="Postponed exit from lambda"];
|
||||||
|
43 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Access variable R|<local>/x|"];
|
||||||
|
45 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34 41};
|
33 -> {34};
|
||||||
33 -> {40} [style=dotted];
|
|
||||||
33 -> {34} [style=dashed];
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36 43};
|
||||||
|
35 -> {42} [style=dotted];
|
||||||
|
35 -> {36} [style=dashed];
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
40 -> {33} [color=green style=dashed];
|
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
|
42 -> {35} [color=green style=dashed];
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
|
45 -> {46};
|
||||||
|
46 -> {47};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+106
-99
@@ -5,85 +5,90 @@ digraph atMostOnce_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
0 [label="Enter file atMostOnce.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file atMostOnce.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter block"];
|
color=red
|
||||||
3 [label="Exit block"];
|
2 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
5 [label="Exit block"];
|
3 [label="Enter block"];
|
||||||
}
|
subgraph cluster_3 {
|
||||||
6 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
7 [label="Exit block"];
|
||||||
|
}
|
||||||
|
8 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
subgraph cluster_3 {
|
|
||||||
color=red
|
|
||||||
7 [label="Enter function myRun" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter block"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Exit block"];
|
|
||||||
}
|
|
||||||
11 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
12 [label="Exit block"];
|
|
||||||
}
|
|
||||||
13 [label="Exit function myRun" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
12 [label="Exit block"];
|
||||||
|
}
|
||||||
|
13 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
15 [label="Enter block"];
|
|
||||||
16 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
17 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
18 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
20 [label="Const: Int(1)"];
|
|
||||||
21 [label="Assignment: R|<local>/x|"];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
24 [label="Postponed exit from lambda"];
|
|
||||||
25 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Access variable R|<local>/x|"];
|
|
||||||
27 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter block"];
|
||||||
|
18 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
19 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
21 [label="Enter block"];
|
||||||
|
22 [label="Const: Int(1)"];
|
||||||
|
23 [label="Assignment: R|<local>/x|"];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
26 [label="Postponed exit from lambda"];
|
||||||
|
27 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Access variable R|<local>/x|"];
|
||||||
|
29 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 24 25};
|
17 -> {18};
|
||||||
17 -> {18} [style=dashed];
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20 26 27};
|
||||||
|
19 -> {20} [style=dashed];
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
@@ -93,42 +98,42 @@ digraph atMostOnce_kt {
|
|||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
subgraph cluster_10 {
|
|
||||||
color=red
|
|
||||||
30 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
32 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
33 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter block"];
|
|
||||||
36 [label="Const: Int(1)"];
|
|
||||||
37 [label="Assignment: R|<local>/x|"];
|
|
||||||
38 [label="Exit block"];
|
|
||||||
}
|
|
||||||
39 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
40 [label="Postponed exit from lambda"];
|
|
||||||
41 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
42 [label="Access variable R|<local>/x|"];
|
|
||||||
43 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
|
||||||
45 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=red
|
||||||
|
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
34 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
35 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
37 [label="Enter block"];
|
||||||
|
38 [label="Const: Int(1)"];
|
||||||
|
39 [label="Assignment: R|<local>/x|"];
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
42 [label="Postponed exit from lambda"];
|
||||||
|
43 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Access variable R|<local>/x|"];
|
||||||
|
45 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34 40 41};
|
33 -> {34};
|
||||||
33 -> {34} [style=dashed];
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36 42 43};
|
||||||
|
35 -> {36} [style=dashed];
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
@@ -138,5 +143,7 @@ digraph atMostOnce_kt {
|
|||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
|
45 -> {46};
|
||||||
|
46 -> {47};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+98
-91
@@ -5,148 +5,155 @@ digraph contractsUsage_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function bar" style="filled" fillcolor=red];
|
0 [label="Enter file contractsUsage.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file contractsUsage.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter block"];
|
color=red
|
||||||
3 [label="Exit block"];
|
2 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
4 [label="Access variable R|<local>/x|"];
|
color=blue
|
||||||
5 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
3 [label="Enter block"];
|
||||||
6 [label="Exit block"];
|
subgraph cluster_3 {
|
||||||
}
|
color=blue
|
||||||
7 [label="Exit function bar" style="filled" fillcolor=red];
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Access variable R|<local>/x|"];
|
||||||
|
7 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
8 [label="Exit block"];
|
||||||
|
}
|
||||||
|
9 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
|
7 -> {8};
|
||||||
|
8 -> {9};
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function baz" style="filled" fillcolor=red];
|
10 [label="Enter function baz" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter block"];
|
11 [label="Enter block"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
10 [label="Enter block"];
|
|
||||||
11 [label="Exit block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
12 [label="Enter when"];
|
12 [label="Enter block"];
|
||||||
subgraph cluster_7 {
|
13 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
13 [label="Enter when branch condition "];
|
subgraph cluster_7 {
|
||||||
14 [label="Const: Boolean(true)"];
|
color=blue
|
||||||
15 [label="Exit when branch condition"];
|
14 [label="Enter when"];
|
||||||
}
|
|
||||||
16 [label="Synthetic else branch"];
|
|
||||||
17 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
18 [label="Enter block"];
|
15 [label="Enter when branch condition "];
|
||||||
19 [label="Access variable this@R|/baz|"];
|
16 [label="Const: Boolean(true)"];
|
||||||
20 [label="Function call: this@R|/baz|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
17 [label="Exit when branch condition"];
|
||||||
21 [label="Exit block"];
|
|
||||||
}
|
}
|
||||||
22 [label="Exit when branch result"];
|
18 [label="Synthetic else branch"];
|
||||||
23 [label="Exit when"];
|
19 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter block"];
|
||||||
|
21 [label="Access variable this@R|/baz|"];
|
||||||
|
22 [label="Function call: this@R|/baz|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
23 [label="Exit block"];
|
||||||
|
}
|
||||||
|
24 [label="Exit when branch result"];
|
||||||
|
25 [label="Exit when"];
|
||||||
}
|
}
|
||||||
24 [label="Exit block"];
|
26 [label="Exit block"];
|
||||||
}
|
}
|
||||||
25 [label="Exit function baz" style="filled" fillcolor=red];
|
27 [label="Exit function baz" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16 17};
|
15 -> {16};
|
||||||
16 -> {23};
|
16 -> {17};
|
||||||
17 -> {18};
|
17 -> {18 19};
|
||||||
18 -> {19};
|
18 -> {25};
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
|
25 -> {26};
|
||||||
|
26 -> {27};
|
||||||
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_10 {
|
||||||
color=red
|
color=red
|
||||||
26 [label="Enter function foo" style="filled" fillcolor=red];
|
28 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_10 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
27 [label="Enter block"];
|
29 [label="Enter block"];
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
28 [label="Enter block"];
|
|
||||||
29 [label="Exit block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
30 [label="Enter when"];
|
30 [label="Enter block"];
|
||||||
subgraph cluster_13 {
|
31 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
31 [label="Enter when branch condition "];
|
subgraph cluster_13 {
|
||||||
32 [label="Const: Boolean(true)"];
|
color=blue
|
||||||
33 [label="Exit when branch condition"];
|
32 [label="Enter when"];
|
||||||
}
|
|
||||||
34 [label="Synthetic else branch"];
|
|
||||||
35 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_14 {
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
36 [label="Enter block"];
|
33 [label="Enter when branch condition "];
|
||||||
37 [label="Access variable R|<local>/x|"];
|
34 [label="Const: Boolean(true)"];
|
||||||
38 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
35 [label="Exit when branch condition"];
|
||||||
39 [label="Access variable R|<local>/y|"];
|
|
||||||
40 [label="Function call: R|<local>/y|.R|/baz|()" style="filled" fillcolor=yellow];
|
|
||||||
41 [label="Jump: ^foo Unit"];
|
|
||||||
42 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
43 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
44 [label="Exit when branch result" style="filled" fillcolor=gray];
|
36 [label="Synthetic else branch"];
|
||||||
45 [label="Exit when"];
|
37 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_15 {
|
||||||
|
color=blue
|
||||||
|
38 [label="Enter block"];
|
||||||
|
39 [label="Access variable R|<local>/x|"];
|
||||||
|
40 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
41 [label="Access variable R|<local>/y|"];
|
||||||
|
42 [label="Function call: R|<local>/y|.R|/baz|()" style="filled" fillcolor=yellow];
|
||||||
|
43 [label="Jump: ^foo Unit"];
|
||||||
|
44 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
45 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
46 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
47 [label="Exit when"];
|
||||||
}
|
}
|
||||||
46 [label="Access variable R|<local>/x|"];
|
48 [label="Access variable R|<local>/x|"];
|
||||||
47 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
49 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
48 [label="Exit block"];
|
50 [label="Exit block"];
|
||||||
}
|
}
|
||||||
49 [label="Exit function foo" style="filled" fillcolor=red];
|
51 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
26 -> {27};
|
|
||||||
27 -> {28};
|
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34 35};
|
33 -> {34};
|
||||||
34 -> {45};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36 37};
|
||||||
36 -> {37};
|
36 -> {47};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {49};
|
41 -> {42};
|
||||||
41 -> {42} [style=dotted];
|
42 -> {43};
|
||||||
42 -> {43} [style=dotted];
|
43 -> {51};
|
||||||
43 -> {44} [style=dotted];
|
43 -> {44} [style=dotted];
|
||||||
44 -> {45} [style=dotted];
|
44 -> {45} [style=dotted];
|
||||||
45 -> {46};
|
45 -> {46} [style=dotted];
|
||||||
46 -> {47};
|
46 -> {47} [style=dotted];
|
||||||
47 -> {48};
|
47 -> {48};
|
||||||
48 -> {49};
|
48 -> {49};
|
||||||
|
49 -> {50};
|
||||||
|
50 -> {51};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+108
-101
@@ -5,86 +5,91 @@ digraph exactlyOnce_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
0 [label="Enter file exactlyOnce.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file exactlyOnce.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter block"];
|
color=red
|
||||||
3 [label="Exit block"];
|
2 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
5 [label="Exit block"];
|
3 [label="Enter block"];
|
||||||
}
|
subgraph cluster_3 {
|
||||||
6 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
7 [label="Exit block"];
|
||||||
|
}
|
||||||
|
8 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
subgraph cluster_3 {
|
|
||||||
color=red
|
|
||||||
7 [label="Enter function myRun" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter block"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Exit block"];
|
|
||||||
}
|
|
||||||
11 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
12 [label="Exit block"];
|
|
||||||
}
|
|
||||||
13 [label="Exit function myRun" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
12 [label="Exit block"];
|
||||||
|
}
|
||||||
|
13 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
15 [label="Enter block"];
|
|
||||||
16 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
17 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
18 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
20 [label="Const: Int(1)"];
|
|
||||||
21 [label="Assignment: R|<local>/x|"];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
24 [label="Postponed exit from lambda"];
|
|
||||||
25 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Access variable R|<local>/x|"];
|
|
||||||
27 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter block"];
|
||||||
|
18 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
19 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
21 [label="Enter block"];
|
||||||
|
22 [label="Const: Int(1)"];
|
||||||
|
23 [label="Assignment: R|<local>/x|"];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
26 [label="Postponed exit from lambda"];
|
||||||
|
27 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Access variable R|<local>/x|"];
|
||||||
|
29 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 25};
|
17 -> {18};
|
||||||
17 -> {24} [style=dotted];
|
|
||||||
17 -> {18} [style=dashed];
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20 27};
|
||||||
|
19 -> {26} [style=dotted];
|
||||||
|
19 -> {20} [style=dashed];
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
@@ -94,43 +99,43 @@ digraph exactlyOnce_kt {
|
|||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
subgraph cluster_10 {
|
|
||||||
color=red
|
|
||||||
30 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
32 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
33 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter block"];
|
|
||||||
36 [label="Const: Int(1)"];
|
|
||||||
37 [label="Assignment: R|<local>/x|"];
|
|
||||||
38 [label="Exit block"];
|
|
||||||
}
|
|
||||||
39 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
40 [label="Postponed exit from lambda"];
|
|
||||||
41 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
42 [label="Access variable R|<local>/x|"];
|
|
||||||
43 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
|
||||||
45 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=red
|
||||||
|
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
34 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
35 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
37 [label="Enter block"];
|
||||||
|
38 [label="Const: Int(1)"];
|
||||||
|
39 [label="Assignment: R|<local>/x|"];
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
42 [label="Postponed exit from lambda"];
|
||||||
|
43 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Access variable R|<local>/x|"];
|
||||||
|
45 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34 41};
|
33 -> {34};
|
||||||
33 -> {40} [style=dotted];
|
|
||||||
33 -> {34} [style=dashed];
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36 43};
|
||||||
|
35 -> {42} [style=dotted];
|
||||||
|
35 -> {36} [style=dashed];
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
@@ -140,5 +145,7 @@ digraph exactlyOnce_kt {
|
|||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
|
45 -> {46};
|
||||||
|
46 -> {47};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+179
-172
@@ -5,257 +5,262 @@ digraph flow_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function bar" style="filled" fillcolor=red];
|
0 [label="Enter file flow.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file flow.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
2 [label="Enter block"];
|
|
||||||
3 [label="Exit block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
4 [label="Enter when"];
|
4 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
5 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
5 [label="Enter when branch condition "];
|
subgraph cluster_4 {
|
||||||
6 [label="Const: Boolean(true)"];
|
color=blue
|
||||||
7 [label="Exit when branch condition"];
|
6 [label="Enter when"];
|
||||||
}
|
|
||||||
8 [label="Synthetic else branch"];
|
|
||||||
9 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
7 [label="Enter when branch condition "];
|
||||||
11 [label="Access variable R|<local>/x|"];
|
8 [label="Const: Boolean(true)"];
|
||||||
12 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
9 [label="Exit when branch condition"];
|
||||||
13 [label="Jump: ^bar Unit"];
|
|
||||||
14 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
15 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
16 [label="Exit when branch result" style="filled" fillcolor=gray];
|
10 [label="Synthetic else branch"];
|
||||||
17 [label="Exit when"];
|
11 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
13 [label="Access variable R|<local>/x|"];
|
||||||
|
14 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
15 [label="Jump: ^bar Unit"];
|
||||||
|
16 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
17 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
|
}
|
||||||
|
18 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
|
19 [label="Exit when"];
|
||||||
}
|
}
|
||||||
18 [label="Access variable R|<local>/x|"];
|
20 [label="Access variable R|<local>/x|"];
|
||||||
19 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
21 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
20 [label="Exit block"];
|
22 [label="Exit block"];
|
||||||
}
|
}
|
||||||
21 [label="Exit function bar" style="filled" fillcolor=red];
|
23 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 9};
|
7 -> {8};
|
||||||
8 -> {17};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 11};
|
||||||
10 -> {11};
|
10 -> {19};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {21};
|
13 -> {14};
|
||||||
13 -> {14} [style=dotted];
|
14 -> {15};
|
||||||
14 -> {15} [style=dotted];
|
15 -> {23};
|
||||||
15 -> {16} [style=dotted];
|
15 -> {16} [style=dotted];
|
||||||
16 -> {17} [style=dotted];
|
16 -> {17} [style=dotted];
|
||||||
17 -> {18};
|
17 -> {18} [style=dotted];
|
||||||
18 -> {19};
|
18 -> {19} [style=dotted];
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
|
21 -> {22};
|
||||||
|
22 -> {23};
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
22 [label="Enter function foo" style="filled" fillcolor=red];
|
24 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter block"];
|
25 [label="Enter block"];
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
24 [label="Enter block"];
|
|
||||||
25 [label="Exit block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
26 [label="Enter when"];
|
26 [label="Enter block"];
|
||||||
subgraph cluster_10 {
|
27 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
27 [label="Enter when branch condition "];
|
subgraph cluster_10 {
|
||||||
28 [label="Const: Boolean(true)"];
|
color=blue
|
||||||
29 [label="Exit when branch condition"];
|
28 [label="Enter when"];
|
||||||
}
|
|
||||||
subgraph cluster_11 {
|
subgraph cluster_11 {
|
||||||
color=blue
|
color=blue
|
||||||
30 [label="Enter when branch condition else"];
|
29 [label="Enter when branch condition "];
|
||||||
|
30 [label="Const: Boolean(true)"];
|
||||||
31 [label="Exit when branch condition"];
|
31 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
32 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_12 {
|
subgraph cluster_12 {
|
||||||
color=blue
|
color=blue
|
||||||
33 [label="Enter block"];
|
32 [label="Enter when branch condition else"];
|
||||||
subgraph cluster_13 {
|
33 [label="Exit when branch condition"];
|
||||||
|
}
|
||||||
|
34 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
35 [label="Enter block"];
|
||||||
|
subgraph cluster_14 {
|
||||||
color=blue
|
color=blue
|
||||||
34 [label="Enter when"];
|
36 [label="Enter when"];
|
||||||
subgraph cluster_14 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter when branch condition "];
|
|
||||||
36 [label="Const: Boolean(false)"];
|
|
||||||
37 [label="Exit when branch condition"];
|
|
||||||
}
|
|
||||||
subgraph cluster_15 {
|
subgraph cluster_15 {
|
||||||
color=blue
|
color=blue
|
||||||
38 [label="Enter when branch condition else"];
|
37 [label="Enter when branch condition "];
|
||||||
|
38 [label="Const: Boolean(false)"];
|
||||||
39 [label="Exit when branch condition"];
|
39 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
40 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_16 {
|
subgraph cluster_16 {
|
||||||
color=blue
|
color=blue
|
||||||
41 [label="Enter block"];
|
40 [label="Enter when branch condition else"];
|
||||||
42 [label="Access variable R|<local>/y|"];
|
41 [label="Exit when branch condition"];
|
||||||
43 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Access variable R|<local>/z|"];
|
|
||||||
45 [label="Function call: R|<local>/z|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
46 [label="Jump: ^foo Unit"];
|
|
||||||
47 [label="Stub" style="filled" fillcolor=gray];
|
|
||||||
48 [label="Exit block" style="filled" fillcolor=gray];
|
|
||||||
}
|
}
|
||||||
49 [label="Exit when branch result" style="filled" fillcolor=gray];
|
42 [label="Enter when branch result"];
|
||||||
50 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_17 {
|
subgraph cluster_17 {
|
||||||
color=blue
|
color=blue
|
||||||
51 [label="Enter block"];
|
43 [label="Enter block"];
|
||||||
52 [label="Access variable R|<local>/y|"];
|
44 [label="Access variable R|<local>/y|"];
|
||||||
53 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
45 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
54 [label="Exit block"];
|
46 [label="Access variable R|<local>/z|"];
|
||||||
|
47 [label="Function call: R|<local>/z|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
48 [label="Jump: ^foo Unit"];
|
||||||
|
49 [label="Stub" style="filled" fillcolor=gray];
|
||||||
|
50 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
55 [label="Exit when branch result"];
|
51 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||||
56 [label="Exit when"];
|
52 [label="Enter when branch result"];
|
||||||
}
|
subgraph cluster_18 {
|
||||||
57 [label="Exit block"];
|
|
||||||
}
|
|
||||||
58 [label="Exit when branch result"];
|
|
||||||
59 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_18 {
|
|
||||||
color=blue
|
|
||||||
60 [label="Enter block"];
|
|
||||||
subgraph cluster_19 {
|
|
||||||
color=blue
|
|
||||||
61 [label="Enter block"];
|
|
||||||
62 [label="Const: Int(0)"];
|
|
||||||
63 [label="Const: Int(0)"];
|
|
||||||
64 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...)" style="filled" fillcolor=yellow];
|
|
||||||
65 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...).R|kotlin/ranges/IntProgression.iterator|()" style="filled" fillcolor=yellow];
|
|
||||||
66 [label="Variable declaration: lval <iterator>: R|kotlin/collections/IntIterator|"];
|
|
||||||
subgraph cluster_20 {
|
|
||||||
color=blue
|
color=blue
|
||||||
67 [label="Enter while loop"];
|
53 [label="Enter block"];
|
||||||
subgraph cluster_21 {
|
54 [label="Access variable R|<local>/y|"];
|
||||||
color=blue
|
55 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
68 [label="Enter loop condition"];
|
56 [label="Exit block"];
|
||||||
69 [label="Access variable R|<local>/<iterator>|"];
|
}
|
||||||
70 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/IntIterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
57 [label="Exit when branch result"];
|
||||||
71 [label="Exit loop condition"];
|
58 [label="Exit when"];
|
||||||
}
|
}
|
||||||
|
59 [label="Exit block"];
|
||||||
|
}
|
||||||
|
60 [label="Exit when branch result"];
|
||||||
|
61 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_19 {
|
||||||
|
color=blue
|
||||||
|
62 [label="Enter block"];
|
||||||
|
subgraph cluster_20 {
|
||||||
|
color=blue
|
||||||
|
63 [label="Enter block"];
|
||||||
|
64 [label="Const: Int(0)"];
|
||||||
|
65 [label="Const: Int(0)"];
|
||||||
|
66 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...)" style="filled" fillcolor=yellow];
|
||||||
|
67 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...).R|kotlin/ranges/IntProgression.iterator|()" style="filled" fillcolor=yellow];
|
||||||
|
68 [label="Variable declaration: lval <iterator>: R|kotlin/collections/IntIterator|"];
|
||||||
|
subgraph cluster_21 {
|
||||||
|
color=blue
|
||||||
|
69 [label="Enter while loop"];
|
||||||
subgraph cluster_22 {
|
subgraph cluster_22 {
|
||||||
color=blue
|
color=blue
|
||||||
72 [label="Enter loop block"];
|
70 [label="Enter loop condition"];
|
||||||
subgraph cluster_23 {
|
71 [label="Access variable R|<local>/<iterator>|"];
|
||||||
color=blue
|
72 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/IntIterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||||
73 [label="Enter block"];
|
73 [label="Exit loop condition"];
|
||||||
74 [label="Access variable R|<local>/<iterator>|"];
|
|
||||||
75 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/IntIterator.next|()" style="filled" fillcolor=yellow];
|
|
||||||
76 [label="Variable declaration: lval i: R|kotlin/Int|"];
|
|
||||||
subgraph cluster_24 {
|
|
||||||
color=blue
|
|
||||||
77 [label="Enter block"];
|
|
||||||
78 [label="Access variable R|<local>/x|"];
|
|
||||||
79 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
80 [label="Exit block"];
|
|
||||||
}
|
|
||||||
81 [label="Exit block"];
|
|
||||||
}
|
|
||||||
82 [label="Exit loop block"];
|
|
||||||
}
|
}
|
||||||
83 [label="Exit while loop"];
|
subgraph cluster_23 {
|
||||||
|
color=blue
|
||||||
|
74 [label="Enter loop block"];
|
||||||
|
subgraph cluster_24 {
|
||||||
|
color=blue
|
||||||
|
75 [label="Enter block"];
|
||||||
|
76 [label="Access variable R|<local>/<iterator>|"];
|
||||||
|
77 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/IntIterator.next|()" style="filled" fillcolor=yellow];
|
||||||
|
78 [label="Variable declaration: lval i: R|kotlin/Int|"];
|
||||||
|
subgraph cluster_25 {
|
||||||
|
color=blue
|
||||||
|
79 [label="Enter block"];
|
||||||
|
80 [label="Access variable R|<local>/x|"];
|
||||||
|
81 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
82 [label="Exit block"];
|
||||||
|
}
|
||||||
|
83 [label="Exit block"];
|
||||||
|
}
|
||||||
|
84 [label="Exit loop block"];
|
||||||
|
}
|
||||||
|
85 [label="Exit while loop"];
|
||||||
}
|
}
|
||||||
84 [label="Exit block"];
|
86 [label="Exit block"];
|
||||||
}
|
}
|
||||||
85 [label="Access variable R|<local>/y|"];
|
87 [label="Access variable R|<local>/y|"];
|
||||||
86 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
88 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
87 [label="Exit block"];
|
89 [label="Exit block"];
|
||||||
}
|
}
|
||||||
88 [label="Exit when branch result"];
|
90 [label="Exit when branch result"];
|
||||||
89 [label="Exit when"];
|
91 [label="Exit when"];
|
||||||
}
|
}
|
||||||
subgraph cluster_25 {
|
subgraph cluster_26 {
|
||||||
color=blue
|
color=blue
|
||||||
90 [label="Enter do-while loop"];
|
92 [label="Enter do-while loop"];
|
||||||
subgraph cluster_26 {
|
subgraph cluster_27 {
|
||||||
color=blue
|
color=blue
|
||||||
91 [label="Enter loop block"];
|
93 [label="Enter loop block"];
|
||||||
subgraph cluster_27 {
|
subgraph cluster_28 {
|
||||||
color=blue
|
color=blue
|
||||||
92 [label="Enter block"];
|
94 [label="Enter block"];
|
||||||
93 [label="Access variable R|<local>/z|"];
|
95 [label="Access variable R|<local>/z|"];
|
||||||
94 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
96 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
95 [label="Exit block"];
|
97 [label="Exit block"];
|
||||||
}
|
}
|
||||||
96 [label="Exit loop block"];
|
98 [label="Exit loop block"];
|
||||||
}
|
}
|
||||||
subgraph cluster_28 {
|
subgraph cluster_29 {
|
||||||
color=blue
|
color=blue
|
||||||
97 [label="Enter loop condition"];
|
99 [label="Enter loop condition"];
|
||||||
98 [label="Const: Boolean(true)"];
|
100 [label="Const: Boolean(true)"];
|
||||||
99 [label="Exit loop condition"];
|
101 [label="Exit loop condition"];
|
||||||
}
|
}
|
||||||
100 [label="Exit do-while loop" style="filled" fillcolor=gray];
|
102 [label="Exit do-while loop" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
101 [label="Exit block" style="filled" fillcolor=gray];
|
103 [label="Exit block" style="filled" fillcolor=gray];
|
||||||
}
|
}
|
||||||
102 [label="Exit function foo" style="filled" fillcolor=red];
|
104 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
22 -> {23};
|
|
||||||
23 -> {24};
|
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30 59};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
31 -> {32 61};
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34};
|
33 -> {34};
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36};
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38 50};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40 52};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
45 -> {46};
|
45 -> {46};
|
||||||
46 -> {102};
|
46 -> {47};
|
||||||
46 -> {47} [style=dotted];
|
47 -> {48};
|
||||||
47 -> {48} [style=dotted];
|
48 -> {104};
|
||||||
48 -> {49} [style=dotted];
|
48 -> {49} [style=dotted];
|
||||||
49 -> {56} [style=dotted];
|
49 -> {50} [style=dotted];
|
||||||
50 -> {51};
|
50 -> {51} [style=dotted];
|
||||||
51 -> {52};
|
51 -> {58} [style=dotted];
|
||||||
52 -> {53};
|
52 -> {53};
|
||||||
53 -> {54};
|
53 -> {54};
|
||||||
54 -> {55};
|
54 -> {55};
|
||||||
55 -> {56};
|
55 -> {56};
|
||||||
56 -> {57};
|
56 -> {57};
|
||||||
57 -> {58};
|
57 -> {58};
|
||||||
58 -> {89};
|
58 -> {59};
|
||||||
59 -> {60};
|
59 -> {60};
|
||||||
60 -> {61};
|
60 -> {91};
|
||||||
61 -> {62};
|
61 -> {62};
|
||||||
62 -> {63};
|
62 -> {63};
|
||||||
63 -> {64};
|
63 -> {64};
|
||||||
@@ -266,9 +271,9 @@ digraph flow_kt {
|
|||||||
68 -> {69};
|
68 -> {69};
|
||||||
69 -> {70};
|
69 -> {70};
|
||||||
70 -> {71};
|
70 -> {71};
|
||||||
71 -> {72 83};
|
71 -> {72};
|
||||||
72 -> {73};
|
72 -> {73};
|
||||||
73 -> {74};
|
73 -> {74 85};
|
||||||
74 -> {75};
|
74 -> {75};
|
||||||
75 -> {76};
|
75 -> {76};
|
||||||
76 -> {77};
|
76 -> {77};
|
||||||
@@ -277,9 +282,9 @@ digraph flow_kt {
|
|||||||
79 -> {80};
|
79 -> {80};
|
||||||
80 -> {81};
|
80 -> {81};
|
||||||
81 -> {82};
|
81 -> {82};
|
||||||
82 -> {68} [color=green style=dashed];
|
82 -> {83};
|
||||||
83 -> {84};
|
83 -> {84};
|
||||||
84 -> {85};
|
84 -> {70} [color=green style=dashed];
|
||||||
85 -> {86};
|
85 -> {86};
|
||||||
86 -> {87};
|
86 -> {87};
|
||||||
87 -> {88};
|
87 -> {88};
|
||||||
@@ -294,9 +299,11 @@ digraph flow_kt {
|
|||||||
96 -> {97};
|
96 -> {97};
|
||||||
97 -> {98};
|
97 -> {98};
|
||||||
98 -> {99};
|
98 -> {99};
|
||||||
99 -> {91} [color=green style=dashed];
|
99 -> {100};
|
||||||
99 -> {100} [style=dotted];
|
100 -> {101};
|
||||||
100 -> {101} [style=dotted];
|
101 -> {93} [color=green style=dashed];
|
||||||
101 -> {102} [style=dotted];
|
101 -> {102} [style=dotted];
|
||||||
|
102 -> {103} [style=dotted];
|
||||||
|
103 -> {104} [style=dotted];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+65
-58
@@ -5,100 +5,107 @@ digraph inPlaceLambda_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function bar" style="filled" fillcolor=red];
|
0 [label="Enter file inPlaceLambda.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file inPlaceLambda.kt" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
0 -> {1} [color=green];
|
||||||
|
|
||||||
|
subgraph cluster_1 {
|
||||||
|
color=red
|
||||||
|
2 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_2 {
|
||||||
color=blue
|
color=blue
|
||||||
1 [label="Enter block"];
|
3 [label="Enter block"];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
|
||||||
2 [label="Enter block"];
|
|
||||||
3 [label="Exit block"];
|
|
||||||
}
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_3 {
|
||||||
color=blue
|
color=blue
|
||||||
4 [label="Enter when"];
|
4 [label="Enter block"];
|
||||||
subgraph cluster_4 {
|
5 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
5 [label="Enter when branch condition "];
|
subgraph cluster_4 {
|
||||||
6 [label="Const: Boolean(true)"];
|
color=blue
|
||||||
7 [label="Exit when branch condition"];
|
6 [label="Enter when"];
|
||||||
}
|
|
||||||
8 [label="Synthetic else branch"];
|
|
||||||
9 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_5 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
10 [label="Enter block"];
|
7 [label="Enter when branch condition "];
|
||||||
11 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
8 [label="Const: Boolean(true)"];
|
||||||
12 [label="Exit block"];
|
9 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
13 [label="Exit when branch result"];
|
10 [label="Synthetic else branch"];
|
||||||
14 [label="Exit when"];
|
11 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
12 [label="Enter block"];
|
||||||
|
13 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit when branch result"];
|
||||||
|
16 [label="Exit when"];
|
||||||
}
|
}
|
||||||
15 [label="Exit block"];
|
17 [label="Exit block"];
|
||||||
}
|
}
|
||||||
16 [label="Exit function bar" style="filled" fillcolor=red];
|
18 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
7 -> {8 9};
|
7 -> {8};
|
||||||
8 -> {14};
|
8 -> {9};
|
||||||
9 -> {10};
|
9 -> {10 11};
|
||||||
10 -> {11};
|
10 -> {16};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
13 -> {14};
|
13 -> {14};
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
|
16 -> {17};
|
||||||
|
17 -> {18};
|
||||||
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_7 {
|
||||||
color=red
|
color=red
|
||||||
17 [label="Enter function foo" style="filled" fillcolor=red];
|
19 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_7 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
18 [label="Enter block"];
|
20 [label="Enter block"];
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
20 [label="Exit block"];
|
|
||||||
}
|
|
||||||
21 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
22 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_9 {
|
subgraph cluster_9 {
|
||||||
color=blue
|
color=blue
|
||||||
23 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
21 [label="Enter block"];
|
||||||
subgraph cluster_10 {
|
22 [label="Exit block"];
|
||||||
color=blue
|
|
||||||
24 [label="Enter block"];
|
|
||||||
25 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Exit block"];
|
|
||||||
}
|
|
||||||
27 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
}
|
||||||
28 [label="Postponed exit from lambda"];
|
23 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
29 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
24 [label="Postponed enter to lambda"];
|
||||||
30 [label="Exit block"];
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
25 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=blue
|
||||||
|
26 [label="Enter block"];
|
||||||
|
27 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Exit block"];
|
||||||
|
}
|
||||||
|
29 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
30 [label="Postponed exit from lambda"];
|
||||||
|
31 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
|
32 [label="Exit block"];
|
||||||
}
|
}
|
||||||
31 [label="Exit function foo" style="filled" fillcolor=red];
|
33 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
17 -> {18};
|
|
||||||
18 -> {19};
|
|
||||||
19 -> {20};
|
19 -> {20};
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23 28 29};
|
22 -> {23};
|
||||||
22 -> {23} [style=dashed];
|
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25 30 31};
|
||||||
|
24 -> {25} [style=dashed];
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
29 -> {30};
|
29 -> {30};
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
|
31 -> {32};
|
||||||
|
32 -> {33};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+58
-51
@@ -5,70 +5,75 @@ digraph simple_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function bar" style="filled" fillcolor=red];
|
0 [label="Enter file simple.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file simple.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter block"];
|
color=red
|
||||||
3 [label="Exit block"];
|
2 [label="Enter function bar" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
4 [label="Access variable R|<local>/x|"];
|
color=blue
|
||||||
5 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
3 [label="Enter block"];
|
||||||
6 [label="Exit block"];
|
subgraph cluster_3 {
|
||||||
}
|
color=blue
|
||||||
7 [label="Exit function bar" style="filled" fillcolor=red];
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Access variable R|<local>/x|"];
|
||||||
|
7 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
8 [label="Exit block"];
|
||||||
|
}
|
||||||
|
9 [label="Exit function bar" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
6 -> {7};
|
6 -> {7};
|
||||||
|
7 -> {8};
|
||||||
|
8 -> {9};
|
||||||
|
|
||||||
subgraph cluster_3 {
|
subgraph cluster_4 {
|
||||||
color=red
|
color=red
|
||||||
8 [label="Enter function foo" style="filled" fillcolor=red];
|
10 [label="Enter function foo" style="filled" fillcolor=red];
|
||||||
subgraph cluster_4 {
|
subgraph cluster_5 {
|
||||||
color=blue
|
color=blue
|
||||||
9 [label="Enter block"];
|
11 [label="Enter block"];
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
10 [label="Enter block"];
|
|
||||||
11 [label="Exit block"];
|
|
||||||
}
|
|
||||||
12 [label="Access variable R|<local>/x|"];
|
|
||||||
13 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
subgraph cluster_6 {
|
subgraph cluster_6 {
|
||||||
color=blue
|
color=blue
|
||||||
14 [label="Enter when"];
|
12 [label="Enter block"];
|
||||||
subgraph cluster_7 {
|
13 [label="Exit block"];
|
||||||
color=blue
|
}
|
||||||
15 [label="Enter when branch condition "];
|
14 [label="Access variable R|<local>/x|"];
|
||||||
16 [label="Const: Boolean(true)"];
|
15 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
17 [label="Exit when branch condition"];
|
subgraph cluster_7 {
|
||||||
}
|
color=blue
|
||||||
18 [label="Synthetic else branch"];
|
16 [label="Enter when"];
|
||||||
19 [label="Enter when branch result"];
|
|
||||||
subgraph cluster_8 {
|
subgraph cluster_8 {
|
||||||
color=blue
|
color=blue
|
||||||
20 [label="Enter block"];
|
17 [label="Enter when branch condition "];
|
||||||
21 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
18 [label="Const: Boolean(true)"];
|
||||||
22 [label="Exit block"];
|
19 [label="Exit when branch condition"];
|
||||||
}
|
}
|
||||||
23 [label="Exit when branch result"];
|
20 [label="Synthetic else branch"];
|
||||||
24 [label="Exit when"];
|
21 [label="Enter when branch result"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
22 [label="Enter block"];
|
||||||
|
23 [label="Function call: R|<local>/y|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit when branch result"];
|
||||||
|
26 [label="Exit when"];
|
||||||
}
|
}
|
||||||
25 [label="Access variable R|<local>/z|"];
|
27 [label="Access variable R|<local>/z|"];
|
||||||
26 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
28 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||||
27 [label="Exit block"];
|
29 [label="Exit block"];
|
||||||
}
|
}
|
||||||
28 [label="Exit function foo" style="filled" fillcolor=red];
|
30 [label="Exit function foo" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
8 -> {9};
|
|
||||||
9 -> {10};
|
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
@@ -76,10 +81,10 @@ digraph simple_kt {
|
|||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
15 -> {16};
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 19};
|
17 -> {18};
|
||||||
18 -> {24};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20 21};
|
||||||
20 -> {21};
|
20 -> {26};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
@@ -87,5 +92,7 @@ digraph simple_kt {
|
|||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+108
-101
@@ -5,140 +5,147 @@ digraph unknown_kt {
|
|||||||
|
|
||||||
subgraph cluster_0 {
|
subgraph cluster_0 {
|
||||||
color=red
|
color=red
|
||||||
0 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
0 [label="Enter file unknown.kt" style="filled" fillcolor=red];
|
||||||
subgraph cluster_1 {
|
1 [label="Exit file unknown.kt" style="filled" fillcolor=red];
|
||||||
color=blue
|
}
|
||||||
1 [label="Enter block"];
|
0 -> {1} [color=green];
|
||||||
subgraph cluster_2 {
|
|
||||||
color=blue
|
subgraph cluster_1 {
|
||||||
2 [label="Enter block"];
|
color=red
|
||||||
3 [label="Exit block"];
|
2 [label="Enter function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
subgraph cluster_2 {
|
||||||
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
color=blue
|
||||||
5 [label="Exit block"];
|
3 [label="Enter block"];
|
||||||
}
|
subgraph cluster_3 {
|
||||||
6 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
color=blue
|
||||||
|
4 [label="Enter block"];
|
||||||
|
5 [label="Exit block"];
|
||||||
|
}
|
||||||
|
6 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
7 [label="Exit block"];
|
||||||
|
}
|
||||||
|
8 [label="Exit function inlineRun" style="filled" fillcolor=red];
|
||||||
}
|
}
|
||||||
0 -> {1};
|
|
||||||
1 -> {2};
|
|
||||||
2 -> {3};
|
2 -> {3};
|
||||||
3 -> {4};
|
3 -> {4};
|
||||||
4 -> {5};
|
4 -> {5};
|
||||||
5 -> {6};
|
5 -> {6};
|
||||||
|
6 -> {7};
|
||||||
subgraph cluster_3 {
|
|
||||||
color=red
|
|
||||||
7 [label="Enter function myRun" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_4 {
|
|
||||||
color=blue
|
|
||||||
8 [label="Enter block"];
|
|
||||||
subgraph cluster_5 {
|
|
||||||
color=blue
|
|
||||||
9 [label="Enter block"];
|
|
||||||
10 [label="Exit block"];
|
|
||||||
}
|
|
||||||
11 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
||||||
12 [label="Exit block"];
|
|
||||||
}
|
|
||||||
13 [label="Exit function myRun" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
7 -> {8};
|
7 -> {8};
|
||||||
8 -> {9};
|
|
||||||
|
subgraph cluster_4 {
|
||||||
|
color=red
|
||||||
|
9 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_5 {
|
||||||
|
color=blue
|
||||||
|
10 [label="Enter block"];
|
||||||
|
subgraph cluster_6 {
|
||||||
|
color=blue
|
||||||
|
11 [label="Enter block"];
|
||||||
|
12 [label="Exit block"];
|
||||||
|
}
|
||||||
|
13 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||||
|
14 [label="Exit block"];
|
||||||
|
}
|
||||||
|
15 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
9 -> {10};
|
9 -> {10};
|
||||||
10 -> {11};
|
10 -> {11};
|
||||||
11 -> {12};
|
11 -> {12};
|
||||||
12 -> {13};
|
12 -> {13};
|
||||||
|
13 -> {14};
|
||||||
subgraph cluster_6 {
|
|
||||||
color=red
|
|
||||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_7 {
|
|
||||||
color=blue
|
|
||||||
15 [label="Enter block"];
|
|
||||||
16 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
17 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_8 {
|
|
||||||
color=blue
|
|
||||||
18 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_9 {
|
|
||||||
color=blue
|
|
||||||
19 [label="Enter block"];
|
|
||||||
20 [label="Const: Int(1)"];
|
|
||||||
21 [label="Assignment: R|<local>/x|"];
|
|
||||||
22 [label="Exit block"];
|
|
||||||
}
|
|
||||||
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
24 [label="Postponed exit from lambda"];
|
|
||||||
25 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
26 [label="Access variable R|<local>/x|"];
|
|
||||||
27 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
28 [label="Exit block"];
|
|
||||||
}
|
|
||||||
29 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
14 -> {15};
|
14 -> {15};
|
||||||
15 -> {16};
|
|
||||||
|
subgraph cluster_7 {
|
||||||
|
color=red
|
||||||
|
16 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_8 {
|
||||||
|
color=blue
|
||||||
|
17 [label="Enter block"];
|
||||||
|
18 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
19 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_9 {
|
||||||
|
color=blue
|
||||||
|
20 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_10 {
|
||||||
|
color=blue
|
||||||
|
21 [label="Enter block"];
|
||||||
|
22 [label="Const: Int(1)"];
|
||||||
|
23 [label="Assignment: R|<local>/x|"];
|
||||||
|
24 [label="Exit block"];
|
||||||
|
}
|
||||||
|
25 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
26 [label="Postponed exit from lambda"];
|
||||||
|
27 [label="Function call: R|/inlineRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
28 [label="Access variable R|<local>/x|"];
|
||||||
|
29 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
30 [label="Exit block"];
|
||||||
|
}
|
||||||
|
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
16 -> {17};
|
16 -> {17};
|
||||||
17 -> {18 24 25};
|
17 -> {18};
|
||||||
17 -> {18} [style=dashed];
|
|
||||||
18 -> {19};
|
18 -> {19};
|
||||||
19 -> {20};
|
19 -> {20 26 27};
|
||||||
|
19 -> {20} [style=dashed];
|
||||||
20 -> {21};
|
20 -> {21};
|
||||||
21 -> {22};
|
21 -> {22};
|
||||||
22 -> {23};
|
22 -> {23};
|
||||||
23 -> {24};
|
23 -> {24};
|
||||||
24 -> {25};
|
24 -> {25};
|
||||||
24 -> {17} [color=green style=dashed];
|
|
||||||
25 -> {26};
|
25 -> {26};
|
||||||
26 -> {27};
|
26 -> {27};
|
||||||
|
26 -> {19} [color=green style=dashed];
|
||||||
27 -> {28};
|
27 -> {28};
|
||||||
28 -> {29};
|
28 -> {29};
|
||||||
|
29 -> {30};
|
||||||
subgraph cluster_10 {
|
|
||||||
color=red
|
|
||||||
30 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_11 {
|
|
||||||
color=blue
|
|
||||||
31 [label="Enter block"];
|
|
||||||
32 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
|
||||||
33 [label="Postponed enter to lambda"];
|
|
||||||
subgraph cluster_12 {
|
|
||||||
color=blue
|
|
||||||
34 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
subgraph cluster_13 {
|
|
||||||
color=blue
|
|
||||||
35 [label="Enter block"];
|
|
||||||
36 [label="Const: Int(1)"];
|
|
||||||
37 [label="Assignment: R|<local>/x|"];
|
|
||||||
38 [label="Exit block"];
|
|
||||||
}
|
|
||||||
39 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
40 [label="Postponed exit from lambda"];
|
|
||||||
41 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
|
||||||
42 [label="Access variable R|<local>/x|"];
|
|
||||||
43 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
||||||
44 [label="Exit block"];
|
|
||||||
}
|
|
||||||
45 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
||||||
}
|
|
||||||
30 -> {31};
|
30 -> {31};
|
||||||
31 -> {32};
|
|
||||||
|
subgraph cluster_11 {
|
||||||
|
color=red
|
||||||
|
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_12 {
|
||||||
|
color=blue
|
||||||
|
33 [label="Enter block"];
|
||||||
|
34 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||||
|
35 [label="Postponed enter to lambda"];
|
||||||
|
subgraph cluster_13 {
|
||||||
|
color=blue
|
||||||
|
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
subgraph cluster_14 {
|
||||||
|
color=blue
|
||||||
|
37 [label="Enter block"];
|
||||||
|
38 [label="Const: Int(1)"];
|
||||||
|
39 [label="Assignment: R|<local>/x|"];
|
||||||
|
40 [label="Exit block"];
|
||||||
|
}
|
||||||
|
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
|
42 [label="Postponed exit from lambda"];
|
||||||
|
43 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
|
||||||
|
44 [label="Access variable R|<local>/x|"];
|
||||||
|
45 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||||
|
46 [label="Exit block"];
|
||||||
|
}
|
||||||
|
47 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
}
|
||||||
32 -> {33};
|
32 -> {33};
|
||||||
33 -> {34 40 41};
|
33 -> {34};
|
||||||
33 -> {34} [style=dashed];
|
|
||||||
34 -> {35};
|
34 -> {35};
|
||||||
35 -> {36};
|
35 -> {36 42 43};
|
||||||
|
35 -> {36} [style=dashed];
|
||||||
36 -> {37};
|
36 -> {37};
|
||||||
37 -> {38};
|
37 -> {38};
|
||||||
38 -> {39};
|
38 -> {39};
|
||||||
39 -> {40};
|
39 -> {40};
|
||||||
40 -> {41};
|
40 -> {41};
|
||||||
40 -> {33} [color=green style=dashed];
|
|
||||||
41 -> {42};
|
41 -> {42};
|
||||||
42 -> {43};
|
42 -> {43};
|
||||||
|
42 -> {35} [color=green style=dashed];
|
||||||
43 -> {44};
|
43 -> {44};
|
||||||
44 -> {45};
|
44 -> {45};
|
||||||
|
45 -> {46};
|
||||||
|
46 -> {47};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user