mirror of
https://github.com/github/codeql.git
synced 2026-06-05 21:47:10 +02:00
Compare commits
292 Commits
codeql-cli
...
copilot/in
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de9deef52b | ||
|
|
0ea1b8596e | ||
|
|
0ef59dffb4 | ||
|
|
5503140318 | ||
|
|
a094a8e460 | ||
|
|
2f8c0df537 | ||
|
|
c25398ea0c | ||
|
|
7e6b10e8cf | ||
|
|
149bfd19d3 | ||
|
|
153fbb0378 | ||
|
|
039b5927f0 | ||
|
|
2070dafeb2 | ||
|
|
c3bafc75ab | ||
|
|
19f93cd18b | ||
|
|
39becfd7e5 | ||
|
|
0f3c9ab483 | ||
|
|
a84043b627 | ||
|
|
2280955136 | ||
|
|
4897757b96 | ||
|
|
8170c207bd | ||
|
|
38a2101e11 | ||
|
|
fb04cd2212 | ||
|
|
157424cca3 | ||
|
|
b9bf81e463 | ||
|
|
4b095f3129 | ||
|
|
3aa660663e | ||
|
|
c1e26f9ea5 | ||
|
|
f5113b1932 | ||
|
|
f77d426706 | ||
|
|
c6ce13a012 | ||
|
|
bfc6deeb9b | ||
|
|
0a876583e5 | ||
|
|
aa136a3282 | ||
|
|
8b799f84ed | ||
|
|
49a435c402 | ||
|
|
96ef59a22a | ||
|
|
b1615312b8 | ||
|
|
63a09484a0 | ||
|
|
7a1a90b5a4 | ||
|
|
06c908756f | ||
|
|
d93de54397 | ||
|
|
adf59f3ee5 | ||
|
|
22a8123ee1 | ||
|
|
3119ef6c1a | ||
|
|
01ff9aa91f | ||
|
|
0633bc7b91 | ||
|
|
ad69cfb721 | ||
|
|
2c156994de | ||
|
|
5f6553490c | ||
|
|
d14b8064b0 | ||
|
|
7636bf560e | ||
|
|
9b2b5971fe | ||
|
|
c2e2770bbf | ||
|
|
e55edf2f1f | ||
|
|
8a199f963d | ||
|
|
fcdce550e8 | ||
|
|
76f71dd235 | ||
|
|
305a63bc38 | ||
|
|
963715884e | ||
|
|
b6847974f7 | ||
|
|
336bbc229e | ||
|
|
8ce601b1d7 | ||
|
|
4396e66f35 | ||
|
|
eda33adafd | ||
|
|
a4b2c0f6fd | ||
|
|
3eaf04ef72 | ||
|
|
d47ee6bed9 | ||
|
|
914c7e1a7b | ||
|
|
29ffd87bf8 | ||
|
|
eae9c0ef0e | ||
|
|
c36ad7be37 | ||
|
|
a84332ac15 | ||
|
|
59dbd68a5e | ||
|
|
0c274849be | ||
|
|
b49b8ff6bd | ||
|
|
25c4d9d09b | ||
|
|
07b8d7eba7 | ||
|
|
f40d42c575 | ||
|
|
8585bb616d | ||
|
|
fc80a2472d | ||
|
|
6d5d57acca | ||
|
|
e77d85f23e | ||
|
|
b753e7d228 | ||
|
|
8e25240282 | ||
|
|
c8196e439f | ||
|
|
c8efc34e8b | ||
|
|
ab0b492429 | ||
|
|
8abd3b93c9 | ||
|
|
ee13ea0f6b | ||
|
|
d28792537b | ||
|
|
c2fc0cf111 | ||
|
|
c3cf7c2bca | ||
|
|
1e6570ec97 | ||
|
|
cfa175357b | ||
|
|
57ac0192c0 | ||
|
|
d16bc36e83 | ||
|
|
fa2d633596 | ||
|
|
5ed3014f7d | ||
|
|
4bd9005f9a | ||
|
|
0c3ab803ef | ||
|
|
27e6b5c0fa | ||
|
|
23328e90d4 | ||
|
|
9a805080ea | ||
|
|
25274a1df2 | ||
|
|
1c50c0c2c6 | ||
|
|
4ae4d7d78d | ||
|
|
3c9d89851d | ||
|
|
ac7eb01817 | ||
|
|
b0e23a73d2 | ||
|
|
ea29986c4f | ||
|
|
f58268064e | ||
|
|
2067113177 | ||
|
|
562f415f64 | ||
|
|
0620d348b2 | ||
|
|
48b1dad959 | ||
|
|
ef1bde7565 | ||
|
|
0b808e1170 | ||
|
|
5508b1576f | ||
|
|
911e59caef | ||
|
|
ff5c0b40f1 | ||
|
|
a5a1312e51 | ||
|
|
2608db9fd9 | ||
|
|
f9e7f90896 | ||
|
|
31386f566c | ||
|
|
e9822f67ee | ||
|
|
994b27bdbd | ||
|
|
a720e258ac | ||
|
|
8b977ef8e1 | ||
|
|
caa9b04ad8 | ||
|
|
91a46f0340 | ||
|
|
37e1e3c879 | ||
|
|
70f3fd1158 | ||
|
|
9abfaca98c | ||
|
|
38473f9e0b | ||
|
|
c7c6e45254 | ||
|
|
c0efc52cc7 | ||
|
|
5c16b0faf9 | ||
|
|
7854a534fd | ||
|
|
76a1a87c41 | ||
|
|
9062bba168 | ||
|
|
e709650449 | ||
|
|
513c7bb30b | ||
|
|
9c958a420a | ||
|
|
2e9de7878b | ||
|
|
c5ae315dbe | ||
|
|
592c7c0437 | ||
|
|
c0798f7b1d | ||
|
|
51dae161a7 | ||
|
|
cac7262a45 | ||
|
|
6b65866ff4 | ||
|
|
73a210a442 | ||
|
|
0aaa7d0631 | ||
|
|
f212efbe5b | ||
|
|
aa1d322fe7 | ||
|
|
151a332f0a | ||
|
|
974e7cc319 | ||
|
|
f91482810d | ||
|
|
ec8ff6ff68 | ||
|
|
af0124f0f1 | ||
|
|
b94ab8d186 | ||
|
|
3ef4a5836c | ||
|
|
8f9d5c5217 | ||
|
|
60d6429b5d | ||
|
|
9f6bd88171 | ||
|
|
a5ef036465 | ||
|
|
e38303b922 | ||
|
|
93e05db394 | ||
|
|
ed9477aac9 | ||
|
|
4e47f7706d | ||
|
|
e2874ac252 | ||
|
|
15936a5f8d | ||
|
|
7bd27b83e0 | ||
|
|
9a1c2da5d9 | ||
|
|
36554d160c | ||
|
|
5a4dee50f7 | ||
|
|
638dc9380c | ||
|
|
fdef477138 | ||
|
|
81e1ab7aab | ||
|
|
8cc6d788c5 | ||
|
|
26e13055c8 | ||
|
|
33e89ea123 | ||
|
|
9a2b7bac8f | ||
|
|
048411e168 | ||
|
|
2802819170 | ||
|
|
a1447075e8 | ||
|
|
cd457a7d6b | ||
|
|
4e12a8c8d2 | ||
|
|
0210c970f2 | ||
|
|
b027ac3658 | ||
|
|
36946313d9 | ||
|
|
26af52897d | ||
|
|
af6e921da5 | ||
|
|
6f643a3604 | ||
|
|
a4df96aad6 | ||
|
|
f9240e7058 | ||
|
|
df37b50051 | ||
|
|
6b6df374fa | ||
|
|
f9e42ac443 | ||
|
|
e0d663f79b | ||
|
|
33fc767782 | ||
|
|
072166ba88 | ||
|
|
48785a0a76 | ||
|
|
e8553c7449 | ||
|
|
33035dbfc8 | ||
|
|
f2ea3b98d8 | ||
|
|
427b73ec9d | ||
|
|
7aa3fd859a | ||
|
|
1c704a0912 | ||
|
|
ea711b032b | ||
|
|
0f8b0a7fdd | ||
|
|
7c728981f1 | ||
|
|
809da0f8e7 | ||
|
|
957c89b478 | ||
|
|
f2f4f4cce3 | ||
|
|
5ed78d1a4a | ||
|
|
6e2fb6f0ff | ||
|
|
213ab902cd | ||
|
|
b60ce3cf04 | ||
|
|
cb84e633fa | ||
|
|
07d4df18b9 | ||
|
|
d95001f406 | ||
|
|
9a94836974 | ||
|
|
a0a0e9e9a7 | ||
|
|
60dcf88b50 | ||
|
|
82bbdee832 | ||
|
|
9ad431dea1 | ||
|
|
cc28ff9a48 | ||
|
|
6e580446fd | ||
|
|
4c5548363c | ||
|
|
8a9e53cc58 | ||
|
|
04f587190e | ||
|
|
e6f587e761 | ||
|
|
2d2b690b5d | ||
|
|
dc863c39a9 | ||
|
|
b6155ff443 | ||
|
|
52b02a0581 | ||
|
|
00fb11b028 | ||
|
|
3f44a23cf2 | ||
|
|
6a8f9a950c | ||
|
|
ebc759d830 | ||
|
|
7610277199 | ||
|
|
f9f1349a0d | ||
|
|
39b6cf9468 | ||
|
|
467394123c | ||
|
|
49e5886a06 | ||
|
|
c10a05f26a | ||
|
|
8710e63011 | ||
|
|
dbc9d0de4a | ||
|
|
9194cdad9c | ||
|
|
7050241a54 | ||
|
|
62a0a3e384 | ||
|
|
3ad2d8ca3d | ||
|
|
bafa892116 | ||
|
|
119994b59f | ||
|
|
b0bc0fdd61 | ||
|
|
4fd02220c7 | ||
|
|
a291548fd8 | ||
|
|
e1cd708c75 | ||
|
|
936f0c650c | ||
|
|
90741b15e2 | ||
|
|
d5b690caf8 | ||
|
|
870ce1be5c | ||
|
|
dbd851e64d | ||
|
|
81d7fc2611 | ||
|
|
e3fa8b031b | ||
|
|
9692671213 | ||
|
|
909d9cb805 | ||
|
|
a44883486a | ||
|
|
0866e8dc21 | ||
|
|
d60a30d1f2 | ||
|
|
da88268943 | ||
|
|
af32ae2ba5 | ||
|
|
07e97e20d8 | ||
|
|
6d10b1582f | ||
|
|
2429e7b792 | ||
|
|
c336a1595d | ||
|
|
b2046034f1 | ||
|
|
ca68274ec3 | ||
|
|
e598c56c64 | ||
|
|
1c8b90e9b1 | ||
|
|
7c9dd05edd | ||
|
|
73695db668 | ||
|
|
08aced85ba | ||
|
|
6c83ec6e61 | ||
|
|
81532c7ce6 | ||
|
|
ed4e2bc5b9 | ||
|
|
589e1e5c19 | ||
|
|
c9e5dbda78 | ||
|
|
a342efca0e | ||
|
|
1233d81523 | ||
|
|
ec12035ac2 | ||
|
|
386872c668 |
2
.github/workflows/mad_modelDiff.yml
vendored
2
.github/workflows/mad_modelDiff.yml
vendored
@@ -70,7 +70,7 @@ jobs:
|
||||
SHORTNAME=`basename $DATABASE`
|
||||
python misc/scripts/models-as-data/generate_mad.py --language java --with-summaries --with-sinks $DATABASE $SHORTNAME/$QL_VARIANT
|
||||
mkdir -p $MODELS/$SHORTNAME
|
||||
mv java/ql/lib/ext/generated/$SHORTNAME/$QL_VARIANT $MODELS/$SHORTNAME
|
||||
mv java/ql/lib/ext/generated/modelgenerator/$SHORTNAME/$QL_VARIANT $MODELS/$SHORTNAME
|
||||
cd ..
|
||||
}
|
||||
|
||||
|
||||
2
.github/workflows/python-tooling.yml
vendored
2
.github/workflows/python-tooling.yml
vendored
@@ -5,7 +5,7 @@ on:
|
||||
paths:
|
||||
- "misc/bazel/**"
|
||||
- "misc/codegen/**"
|
||||
- "misc/scripts/models-as-data/bulk_generate_mad.py"
|
||||
- "misc/scripts/models-as-data/*.py"
|
||||
- "*.bazel*"
|
||||
- .github/workflows/codegen.yml
|
||||
- .pre-commit-config.yaml
|
||||
|
||||
442
Cargo.lock
generated
442
Cargo.lock
generated
@@ -140,6 +140,26 @@ version = "0.22.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
||||
|
||||
[[package]]
|
||||
name = "bindgen"
|
||||
version = "0.72.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"cexpr",
|
||||
"clang-sys",
|
||||
"itertools 0.12.1",
|
||||
"log 0.4.28",
|
||||
"prettyplease",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"regex",
|
||||
"rustc-hash 2.1.1",
|
||||
"shlex",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.3.2"
|
||||
@@ -240,9 +260,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.2.37"
|
||||
version = "1.2.61"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44"
|
||||
checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d"
|
||||
dependencies = [
|
||||
"find-msvc-tools",
|
||||
"jobserver",
|
||||
@@ -250,6 +270,15 @@ dependencies = [
|
||||
"shlex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cexpr"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
||||
dependencies = [
|
||||
"nom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "1.0.3"
|
||||
@@ -328,7 +357,7 @@ dependencies = [
|
||||
"chalk-derive 0.103.0",
|
||||
"chalk-ir 0.103.0",
|
||||
"ena",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"itertools 0.12.1",
|
||||
"petgraph",
|
||||
"rustc-hash 1.1.0",
|
||||
@@ -349,6 +378,17 @@ dependencies = [
|
||||
"windows-link 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clang-sys"
|
||||
version = "1.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
|
||||
dependencies = [
|
||||
"glob",
|
||||
"libc",
|
||||
"libloading",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.48"
|
||||
@@ -416,6 +456,7 @@ dependencies = [
|
||||
"tree-sitter",
|
||||
"tree-sitter-json",
|
||||
"tree-sitter-ql",
|
||||
"yeast",
|
||||
"zstd",
|
||||
]
|
||||
|
||||
@@ -437,6 +478,25 @@ dependencies = [
|
||||
"tree-sitter-ruby",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codeql-extractor-unified"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"codeql-extractor",
|
||||
"encoding",
|
||||
"lazy_static",
|
||||
"rayon",
|
||||
"regex",
|
||||
"serde_json",
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
"tree-sitter",
|
||||
"tree-sitter-embedded-template",
|
||||
"tree-sitter-swift",
|
||||
"yeast",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "codeql-rust"
|
||||
version = "0.1.0"
|
||||
@@ -485,6 +545,15 @@ version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
|
||||
|
||||
[[package]]
|
||||
name = "convert_case"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f"
|
||||
dependencies = [
|
||||
"unicode-segmentation",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation-sys"
|
||||
version = "0.8.7"
|
||||
@@ -738,6 +807,12 @@ dependencies = [
|
||||
"typeid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fastrand"
|
||||
version = "2.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
|
||||
|
||||
[[package]]
|
||||
name = "figment"
|
||||
version = "0.10.19"
|
||||
@@ -754,9 +829,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "find-msvc-tools"
|
||||
version = "0.1.1"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d"
|
||||
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
||||
|
||||
[[package]]
|
||||
name = "fixedbitset"
|
||||
@@ -786,6 +861,12 @@ version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
||||
|
||||
[[package]]
|
||||
name = "foldhash"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
|
||||
|
||||
[[package]]
|
||||
name = "form_urlencoded"
|
||||
version = "1.2.2"
|
||||
@@ -870,9 +951,26 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
"equivalent",
|
||||
"foldhash",
|
||||
"foldhash 0.1.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.16.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
"equivalent",
|
||||
"foldhash 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.17.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
||||
|
||||
[[package]]
|
||||
name = "hashlink"
|
||||
version = "0.10.0"
|
||||
@@ -1059,16 +1157,25 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "2.11.4"
|
||||
version = "2.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
|
||||
checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
|
||||
dependencies = [
|
||||
"equivalent",
|
||||
"hashbrown 0.15.5",
|
||||
"hashbrown 0.17.1",
|
||||
"serde",
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "indoc"
|
||||
version = "2.0.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
|
||||
dependencies = [
|
||||
"rustversion",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "inlinable_string"
|
||||
version = "0.1.15"
|
||||
@@ -1198,6 +1305,16 @@ version = "0.2.175"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
|
||||
|
||||
[[package]]
|
||||
name = "libloading"
|
||||
version = "0.8.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"windows-link 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "line-index"
|
||||
version = "0.1.2"
|
||||
@@ -1263,6 +1380,12 @@ dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "minimal-lexical"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
||||
|
||||
[[package]]
|
||||
name = "miniz_oxide"
|
||||
version = "0.8.9"
|
||||
@@ -1309,6 +1432,16 @@ version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
|
||||
|
||||
[[package]]
|
||||
name = "nom"
|
||||
version = "7.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"minimal-lexical",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "notify"
|
||||
version = "8.2.0"
|
||||
@@ -1436,6 +1569,12 @@ dependencies = [
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pathdiff"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
|
||||
|
||||
[[package]]
|
||||
name = "pear"
|
||||
version = "0.2.9"
|
||||
@@ -1491,7 +1630,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
|
||||
dependencies = [
|
||||
"fixedbitset",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf"
|
||||
version = "0.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
|
||||
dependencies = [
|
||||
"phf_shared",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf_generator"
|
||||
version = "0.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
|
||||
dependencies = [
|
||||
"fastrand",
|
||||
"phf_shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf_shared"
|
||||
version = "0.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
|
||||
dependencies = [
|
||||
"siphasher",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1536,6 +1704,25 @@ dependencies = [
|
||||
"zerocopy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "prettyplease"
|
||||
version = "0.2.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-crate"
|
||||
version = "3.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
|
||||
dependencies = [
|
||||
"toml_edit 0.25.11+spec-1.1.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.101"
|
||||
@@ -1667,7 +1854,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e876bb2c3e52a8d4e6684526a2d4e81f9d028b939ee4dc5dc775fe10deb44d59"
|
||||
dependencies = [
|
||||
"dashmap",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"la-arena",
|
||||
"ra_ap_cfg",
|
||||
"ra_ap_intern",
|
||||
@@ -1709,7 +1896,7 @@ checksum = "ebffdc134eccabc17209d7760cfff7fd12ed18ab6e21188c5e084b97aa38504c"
|
||||
dependencies = [
|
||||
"arrayvec",
|
||||
"either",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"itertools 0.14.0",
|
||||
"ra_ap_base_db",
|
||||
"ra_ap_cfg",
|
||||
@@ -1739,7 +1926,7 @@ dependencies = [
|
||||
"drop_bomb",
|
||||
"either",
|
||||
"fst",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"itertools 0.14.0",
|
||||
"la-arena",
|
||||
"ra-ap-rustc_abi",
|
||||
@@ -1808,7 +1995,7 @@ dependencies = [
|
||||
"cov-mark",
|
||||
"either",
|
||||
"ena",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"itertools 0.14.0",
|
||||
"la-arena",
|
||||
"oorandom",
|
||||
@@ -1846,7 +2033,7 @@ dependencies = [
|
||||
"crossbeam-channel",
|
||||
"either",
|
||||
"fst",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"itertools 0.14.0",
|
||||
"line-index",
|
||||
"memchr",
|
||||
@@ -1948,7 +2135,7 @@ version = "0.0.301"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "45db9e2df587d56f0738afa89fb2c100ff7c1e9cbe49e07f6a8b62342832211b"
|
||||
dependencies = [
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"ra_ap_intern",
|
||||
"ra_ap_paths",
|
||||
"ra_ap_span",
|
||||
@@ -2107,7 +2294,7 @@ checksum = "6c174d6b9b7a7f54687df7e00c3e75ed6f082a7943a9afb1d54f33c0c12773de"
|
||||
dependencies = [
|
||||
"crossbeam-channel",
|
||||
"fst",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"nohash-hasher",
|
||||
"ra_ap_paths",
|
||||
"ra_ap_stdx",
|
||||
@@ -2239,6 +2426,15 @@ version = "0.8.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
|
||||
|
||||
[[package]]
|
||||
name = "relative-path"
|
||||
version = "2.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bca40a312222d8ba74837cb474edef44b37f561da5f773981007a10bbaa992b0"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rowan"
|
||||
version = "0.15.15"
|
||||
@@ -2252,6 +2448,57 @@ dependencies = [
|
||||
"text-size",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rquickjs"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a135375fbac5ba723bb6a48f432a72f81539cedde422f0121a86c7c4e96d8e0d"
|
||||
dependencies = [
|
||||
"rquickjs-core",
|
||||
"rquickjs-macro",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rquickjs-core"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bccb7121a123865c8ace4dea42e7ed84d78b90cbaf4ca32c59849d8d210c9672"
|
||||
dependencies = [
|
||||
"hashbrown 0.16.1",
|
||||
"phf",
|
||||
"relative-path",
|
||||
"rquickjs-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rquickjs-macro"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89f93602cc3112c7f30bf5f29e722784232138692c7df4c52ebbac7e035d900d"
|
||||
dependencies = [
|
||||
"convert_case",
|
||||
"fnv",
|
||||
"ident_case",
|
||||
"indexmap 2.14.0",
|
||||
"phf_generator",
|
||||
"phf_shared",
|
||||
"proc-macro-crate",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"rquickjs-core",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rquickjs-sys"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57b1b6528590d4d65dc86b5159eae2d0219709546644c66408b2441696d1d725"
|
||||
dependencies = [
|
||||
"bindgen",
|
||||
"cc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rust-extractor-macros"
|
||||
version = "0.1.0"
|
||||
@@ -2317,7 +2564,7 @@ dependencies = [
|
||||
"crossbeam-utils",
|
||||
"hashbrown 0.15.5",
|
||||
"hashlink",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"intrusive-collections",
|
||||
"papaya",
|
||||
"parking_lot",
|
||||
@@ -2406,11 +2653,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "semver"
|
||||
version = "1.0.26"
|
||||
version = "1.0.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
|
||||
checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2470,7 +2718,7 @@ version = "1.0.145"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
|
||||
dependencies = [
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"itoa",
|
||||
"memchr",
|
||||
"ryu",
|
||||
@@ -2506,7 +2754,7 @@ dependencies = [
|
||||
"chrono",
|
||||
"hex",
|
||||
"indexmap 1.9.3",
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"schemars 0.9.0",
|
||||
"schemars 1.0.4",
|
||||
"serde",
|
||||
@@ -2534,7 +2782,7 @@ version = "0.9.34+deprecated"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
|
||||
dependencies = [
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"itoa",
|
||||
"ryu",
|
||||
"serde",
|
||||
@@ -2556,6 +2804,18 @@ version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
||||
|
||||
[[package]]
|
||||
name = "siphasher"
|
||||
version = "1.0.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
|
||||
|
||||
[[package]]
|
||||
name = "smallbitvec"
|
||||
version = "2.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b0e903ee191d8f7a8fbf0d712c3a1699d19e04ceba5ad1eb673053c7d938a09"
|
||||
|
||||
[[package]]
|
||||
name = "smallvec"
|
||||
version = "1.15.1"
|
||||
@@ -2632,18 +2892,18 @@ checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d"
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "2.0.16"
|
||||
version = "2.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
|
||||
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "2.0.16"
|
||||
version = "2.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
|
||||
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -2708,7 +2968,7 @@ dependencies = [
|
||||
"serde",
|
||||
"serde_spanned 0.6.9",
|
||||
"toml_datetime 0.6.11",
|
||||
"toml_edit",
|
||||
"toml_edit 0.22.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2717,13 +2977,13 @@ version = "0.9.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0"
|
||||
dependencies = [
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"serde_core",
|
||||
"serde_spanned 1.0.2",
|
||||
"toml_datetime 0.7.2",
|
||||
"toml_parser",
|
||||
"toml_writer",
|
||||
"winnow",
|
||||
"winnow 0.7.13",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2744,27 +3004,48 @@ dependencies = [
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_datetime"
|
||||
version = "1.1.1+spec-1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
|
||||
dependencies = [
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.22.27"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
|
||||
dependencies = [
|
||||
"indexmap 2.11.4",
|
||||
"indexmap 2.14.0",
|
||||
"serde",
|
||||
"serde_spanned 0.6.9",
|
||||
"toml_datetime 0.6.11",
|
||||
"toml_write",
|
||||
"winnow",
|
||||
"winnow 0.7.13",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.25.11+spec-1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b"
|
||||
dependencies = [
|
||||
"indexmap 2.14.0",
|
||||
"toml_datetime 1.1.1+spec-1.1.0",
|
||||
"toml_parser",
|
||||
"winnow 1.0.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_parser"
|
||||
version = "1.0.3"
|
||||
version = "1.1.2+spec-1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627"
|
||||
checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
|
||||
dependencies = [
|
||||
"winnow",
|
||||
"winnow 1.0.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2779,6 +3060,12 @@ version = "1.0.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109"
|
||||
|
||||
[[package]]
|
||||
name = "topological-sort"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d"
|
||||
|
||||
[[package]]
|
||||
name = "tracing"
|
||||
version = "0.1.41"
|
||||
@@ -2853,9 +3140,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter"
|
||||
version = "0.25.9"
|
||||
version = "0.26.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ccd2a058a86cfece0bf96f7cce1021efef9c8ed0e892ab74639173e5ed7a34fa"
|
||||
checksum = "887bd495d0582c5e3e0d8ece2233666169fa56a9644d172fc22ad179ab2d0538"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"regex",
|
||||
@@ -2875,6 +3162,30 @@ dependencies = [
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-generate"
|
||||
version = "0.26.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c3fb2e1bdb1d5f9d23cd5fa68cf98b3bedbd223c92a2edd60bbcf30bcf7180a5"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"dunce",
|
||||
"indexmap 2.14.0",
|
||||
"indoc",
|
||||
"log 0.4.28",
|
||||
"pathdiff",
|
||||
"regex",
|
||||
"regex-syntax",
|
||||
"rquickjs",
|
||||
"rustc-hash 2.1.1",
|
||||
"semver",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"smallbitvec",
|
||||
"thiserror",
|
||||
"topological-sort",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-json"
|
||||
version = "0.24.8"
|
||||
@@ -2891,6 +3202,16 @@ version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8"
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-python"
|
||||
version = "0.23.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3d065aaa27f3aaceaf60c1f0e0ac09e1cb9eb8ed28e7bcdaa52129cffc7f4b04"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-ql"
|
||||
version = "0.23.1"
|
||||
@@ -2911,6 +3232,15 @@ dependencies = [
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-swift"
|
||||
version = "0.7.2"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter-generate",
|
||||
"tree-sitter-language",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "triomphe"
|
||||
version = "0.1.14"
|
||||
@@ -2960,6 +3290,12 @@ version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-segmentation"
|
||||
version = "1.13.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
version = "0.2.6"
|
||||
@@ -3349,6 +3685,15 @@ dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winnow"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wit-bindgen"
|
||||
version = "0.45.1"
|
||||
@@ -3367,6 +3712,29 @@ version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
|
||||
|
||||
[[package]]
|
||||
name = "yeast"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_yaml",
|
||||
"tree-sitter",
|
||||
"tree-sitter-python",
|
||||
"tree-sitter-ruby",
|
||||
"yeast-macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "yeast-macros"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "yoke"
|
||||
version = "0.8.0"
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
resolver = "2"
|
||||
members = [
|
||||
"shared/tree-sitter-extractor",
|
||||
"shared/yeast",
|
||||
"shared/yeast-macros",
|
||||
"ruby/extractor",
|
||||
"unified/extractor",
|
||||
"unified/extractor/tree-sitter-swift",
|
||||
"rust/extractor",
|
||||
"rust/extractor/macros",
|
||||
"rust/ast-generator",
|
||||
|
||||
@@ -102,6 +102,7 @@ use_repo(
|
||||
tree_sitter_extractors_deps,
|
||||
"vendor_ts__anyhow-1.0.100",
|
||||
"vendor_ts__argfile-0.2.1",
|
||||
"vendor_ts__cc-1.2.61",
|
||||
"vendor_ts__chalk-ir-0.104.0",
|
||||
"vendor_ts__chrono-0.4.42",
|
||||
"vendor_ts__clap-4.5.48",
|
||||
@@ -141,14 +142,18 @@ use_repo(
|
||||
"vendor_ts__serde-1.0.228",
|
||||
"vendor_ts__serde_json-1.0.145",
|
||||
"vendor_ts__serde_with-3.14.1",
|
||||
"vendor_ts__serde_yaml-0.9.34-deprecated",
|
||||
"vendor_ts__syn-2.0.106",
|
||||
"vendor_ts__toml-0.9.7",
|
||||
"vendor_ts__tracing-0.1.41",
|
||||
"vendor_ts__tracing-flame-0.2.0",
|
||||
"vendor_ts__tracing-subscriber-0.3.20",
|
||||
"vendor_ts__tree-sitter-0.25.9",
|
||||
"vendor_ts__tree-sitter-0.26.8",
|
||||
"vendor_ts__tree-sitter-embedded-template-0.25.0",
|
||||
"vendor_ts__tree-sitter-generate-0.26.8",
|
||||
"vendor_ts__tree-sitter-json-0.24.8",
|
||||
"vendor_ts__tree-sitter-language-0.1.5",
|
||||
"vendor_ts__tree-sitter-python-0.23.6",
|
||||
"vendor_ts__tree-sitter-ql-0.23.1",
|
||||
"vendor_ts__tree-sitter-ruby-0.23.1",
|
||||
"vendor_ts__triomphe-0.1.14",
|
||||
|
||||
@@ -8,5 +8,5 @@
|
||||
import actions
|
||||
|
||||
from UsesStep uses
|
||||
where uses.getVersion().regexpMatch("^[A-Fa-f0-9]{40}$")
|
||||
where uses.getVersion().regexpMatch("^[A-Fa-f0-9]{40}([A-Fa-f0-9]{24})?$")
|
||||
select uses, "This 'uses' step has a pinned SHA version."
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Altered 2 patterns in the `poisonable_steps` modelling. Extra sinks are detected in the following cases: scripts executed via python modules and `go run` in directories are detected as potential mechanisms of injection. For the go execution pattern, the pattern is updated to now ignore flags that occur between go and the specific command. This change may lead to more results being detected by the following queries: `actions/untrusted-checkout/high`, `actions/untrusted-checkout/critical`, `actions/untrusted-checkout-toctou/high`, `actions/untrusted-checkout-toctou/critical`, `actions/cache-poisoning/poisonable-step`, `actions/cache-poisoning/direct-cache` and `actions/artifact-poisoning/path-traversal`.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* The GitHub Actions analysis now recognizes more Bash regex checks that restrict a value to alphanumeric characters, include regexes like `^[0-9a-zA-Z]{40}([0-9a-zA-Z]{24})?$` which check for a sha1 or sha256 hash. This may reduce false positive results where command output is validated with grouped or optional alphanumeric patterns before being used.
|
||||
@@ -785,7 +785,22 @@ module Bash {
|
||||
|
||||
/**
|
||||
* Holds if the given regex is used to match an alphanumeric string
|
||||
* eg: `^[0-9a-zA-Z]{40}$`, `^[0-9]+$` or `^[a-zA-Z0-9_]+$`
|
||||
* eg: `^[0-9a-zA-Z]{40}([0-9a-zA-Z]{24})?$`, `^[0-9]+$` or `^[a-zA-Z0-9_]+$`
|
||||
*/
|
||||
string alphaNumericRegex() { result = "^\\^\\[([09azAZ_-]+)\\](\\+|\\{\\d+\\})\\$$" }
|
||||
string alphaNumericRegex() {
|
||||
exists(string r1, string r2, string r3, string r4 |
|
||||
// An alphanumeric character class
|
||||
r1 = "\\[([09azAZ_-]+)\\]" and
|
||||
// The same as above, followed by a quantifier like `+` or `{20}`
|
||||
r2 = r1 + "(\\+|\\{\\d+\\})" and
|
||||
// The same as above, possibly with parentheses around it
|
||||
r3 = "\\(?" + r2 + "\\)?" and
|
||||
// The same as above, possibly with a `?` after it
|
||||
r4 = r3 + "\\??"
|
||||
|
|
||||
// The same as above, repeated one or more times, and with `^` at the
|
||||
// beginning and `$` at the end
|
||||
result = "^\\^(" + r4 + ")+\\$$"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ extensions:
|
||||
- ["(source|sh|bash|zsh|fish)\\s+([^\\s]+)\\b", 2]
|
||||
- ["(node)\\s+([^\\s]+)(\\.js|\\.ts)\\b", 2]
|
||||
- ["(python[\\d\\.]*)\\s+([^\\s]+)\\.py\\b", 2]
|
||||
- ["(python[\\d\\.]*)\\s+-m\\s+([A-Za-z_][\\w\\.]*)\\b", 2] # eg: pythonX -m anything(dir or file)
|
||||
- ["(ruby)\\s+([^\\s]+)\\.rb\\b", 2]
|
||||
- ["(go)\\s+(generate|run)\\s+([^\\s]+)\\.go\\b", 3]
|
||||
- ["(go)\\s+(generate|run)(?:\\s+-[^\\s]+)*\\s+([^\\s]+)", 3]
|
||||
- ["(dotnet)\\s+([^\\s]+)\\.csproj\\b", 2]
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/actions-all
|
||||
version: 0.4.35
|
||||
version: 0.4.36-dev
|
||||
library: true
|
||||
warnOnImplicitThis: true
|
||||
dependencies:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @name Unpinned tag for a non-immutable Action in workflow
|
||||
* @name Unpinned tag for a non-immutable Action in workflow or composite action
|
||||
* @description Using a tag for a non-immutable Action that is not pinned to a commit can lead to executing an untrusted Action through a supply chain attack.
|
||||
* @kind problem
|
||||
* @security-severity 5.0
|
||||
@@ -15,7 +15,9 @@ import actions
|
||||
import codeql.actions.security.UseOfUnversionedImmutableAction
|
||||
|
||||
bindingset[version]
|
||||
private predicate isPinnedCommit(string version) { version.regexpMatch("^[A-Fa-f0-9]{40}$") }
|
||||
private predicate isPinnedCommit(string version) {
|
||||
version.regexpMatch("^[A-Fa-f0-9]{40}([A-Fa-f0-9]{24})?$")
|
||||
}
|
||||
|
||||
bindingset[nwo]
|
||||
private predicate isTrustedOwner(string nwo) {
|
||||
@@ -31,15 +33,26 @@ private predicate isPinnedContainer(string version) {
|
||||
bindingset[nwo]
|
||||
private predicate isContainerImage(string nwo) { nwo.regexpMatch("^docker://.+") }
|
||||
|
||||
from UsesStep uses, string nwo, string version, Workflow workflow, string name
|
||||
private predicate getStepContainerName(UsesStep uses, string name) {
|
||||
exists(Workflow workflow |
|
||||
uses.getEnclosingWorkflow() = workflow and
|
||||
(
|
||||
workflow.getName() = name
|
||||
or
|
||||
not exists(workflow.getName()) and workflow.getLocation().getFile().getBaseName() = name
|
||||
)
|
||||
)
|
||||
or
|
||||
exists(CompositeAction action |
|
||||
uses.getEnclosingCompositeAction() = action and
|
||||
name = action.getLocation().getFile().getBaseName()
|
||||
)
|
||||
}
|
||||
|
||||
from UsesStep uses, string nwo, string version, string name
|
||||
where
|
||||
uses.getCallee() = nwo and
|
||||
uses.getEnclosingWorkflow() = workflow and
|
||||
(
|
||||
workflow.getName() = name
|
||||
or
|
||||
not exists(workflow.getName()) and workflow.getLocation().getFile().getBaseName() = name
|
||||
) and
|
||||
getStepContainerName(uses, name) and
|
||||
uses.getVersion() = version and
|
||||
not isTrustedOwner(nwo) and
|
||||
not (if isContainerImage(nwo) then isPinnedContainer(version) else isPinnedCommit(version)) and
|
||||
|
||||
@@ -1,6 +1,35 @@
|
||||
## Overview
|
||||
|
||||
GitHub workflows can be triggered through various repository events, including incoming pull requests (PRs) or comments on Issues/PRs. A potentially dangerous misuse of the triggers such as `pull_request_target` or `issue_comment` followed by an explicit checkout of untrusted code (Pull Request HEAD) may lead to repository compromise if untrusted code gets executed (e.g., due to a modified build script) in a privileged job.
|
||||
GitHub workflows can be triggered through various repository events, including incoming pull requests (PRs) or comments on Issues/PRs. Under certain conditions described below, attackers can take over a repository by opening malicious PRs from forks. The attacks can result in malicious code execution causing unauthorized changes to the repository or exfiltration of repository secrets and a compromise of connected systems.
|
||||
|
||||
## Workflow Security Model
|
||||
|
||||
In GitHub Actions, there is a distinction between unprivileged and privileged workflows. For example, a workflow with a `pull_request` trigger is unprivileged while a workflow with `pull_request_target` is privileged.
|
||||
|
||||
This is relevant especially for PRs from forks. Normal PRs can only be submitted by people who have write access to a repository, while PRs from forks can be submitted by anyone.
|
||||
|
||||
On a PR from a fork, an unprivileged `pull_request` workflow has only limited capabilities but a privileged `pull_request_target` workflow is much more dangerous. A privileged workflow:
|
||||
|
||||
* Runs in the context of the base repository
|
||||
* Has access to organization and repository secrets (e.g., API keys, deployment tokens)
|
||||
* Has a read/write `GITHUB_TOKEN` by default
|
||||
* Can access private resources
|
||||
|
||||
Certain triggers automatically grant a workflow elevated privileges:
|
||||
|
||||
* `pull_request_target` as described above
|
||||
* `workflow_run`: Triggered when another workflow completes.
|
||||
* `issue_comment`: Triggered when a comment is made on an issue or PR.
|
||||
|
||||
## Attack Details
|
||||
|
||||
* A repository has a privileged workflow
|
||||
* An attacker forks the repository and adds malicious code (e.g., in the build script)
|
||||
* The attacker opens a PR from the fork, and, if needed, comments on the PR
|
||||
* The workflow in the base repository checks out the forked code
|
||||
* The workflow runs the malicious code
|
||||
|
||||
Please note that not only build scripts can be malicious code vectors. There is a large number of other possibilities. Some of them are listed in the [LOTP](https://boostsecurityio.github.io/lotp/) catalog.
|
||||
|
||||
## Recommendation
|
||||
|
||||
@@ -12,6 +41,8 @@ The best practice is to handle the potentially untrusted pull request via the **
|
||||
|
||||
The artifacts downloaded from the first workflow should be considered untrusted and must be verified.
|
||||
|
||||
Additionally, ensure that least privilege are used both at the workflow level (through event triggers and workflow permissions) and job level (through job permissions).
|
||||
|
||||
## Example
|
||||
|
||||
### Incorrect Usage
|
||||
@@ -133,3 +164,6 @@ jobs:
|
||||
## References
|
||||
|
||||
- GitHub Security Lab Research: [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/).
|
||||
- Mitigating risks of untrusted checkout: [GitHub Docs](https://docs.github.com/en/enterprise-cloud@latest/actions/reference/security/secure-use#mitigating-the-risks-of-untrusted-code-checkout).
|
||||
- Securing with least privilege: [Workflow secure use](https://docs.github.com/en/actions/reference/security/secure-use).
|
||||
- Living Off the Pipeline: [LOTP](https://boostsecurityio.github.io/lotp/).
|
||||
|
||||
@@ -51,5 +51,6 @@ where
|
||||
event.getName() = checkoutTriggers() and
|
||||
not exists(ControlCheck check | check.protects(checkout, event, "untrusted-checkout")) and
|
||||
not exists(ControlCheck check | check.protects(poisonable, event, "untrusted-checkout"))
|
||||
select poisonable, checkout, poisonable,
|
||||
"Potential execution of untrusted code on a privileged workflow ($@)", event, event.getName()
|
||||
select checkout, checkout, poisonable,
|
||||
"Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@).",
|
||||
event, event.getName()
|
||||
|
||||
@@ -1,6 +1,35 @@
|
||||
## Overview
|
||||
|
||||
GitHub workflows can be triggered through various repository events, including incoming pull requests (PRs) or comments on Issues/PRs. A potentially dangerous misuse of the triggers such as `pull_request_target` or `issue_comment` followed by an explicit checkout of untrusted code (Pull Request HEAD) may lead to repository compromise if untrusted code gets executed (e.g., due to a modified build script) in a privileged job.
|
||||
GitHub workflows can be triggered through various repository events, including incoming pull requests (PRs) or comments on Issues/PRs. Under certain conditions described below, attackers can take over a repository by opening malicious PRs from forks. The attacks can result in malicious code execution causing unauthorized changes to the repository or exfiltration of repository secrets and a compromise of connected systems.
|
||||
|
||||
## Workflow Security Model
|
||||
|
||||
In GitHub Actions, there is a distinction between unprivileged and privileged workflows. For example, a workflow with a `pull_request` trigger is unprivileged while a workflow with `pull_request_target` is privileged.
|
||||
|
||||
This is relevant especially for PRs from forks. Normal PRs can only be submitted by people who have write access to a repository, while PRs from forks can be submitted by anyone.
|
||||
|
||||
On a PR from a fork, an unprivileged `pull_request` workflow has only limited capabilities but a privileged `pull_request_target` workflow is much more dangerous. A privileged workflow:
|
||||
|
||||
* Runs in the context of the base repository
|
||||
* Has access to organization and repository secrets (e.g., API keys, deployment tokens)
|
||||
* Has a read/write `GITHUB_TOKEN` by default
|
||||
* Can access private resources
|
||||
|
||||
Certain triggers automatically grant a workflow elevated privileges:
|
||||
|
||||
* `pull_request_target` as described above
|
||||
* `workflow_run`: Triggered when another workflow completes.
|
||||
* `issue_comment`: Triggered when a comment is made on an issue or PR.
|
||||
|
||||
## Attack Details
|
||||
|
||||
* A repository has a privileged workflow
|
||||
* An attacker forks the repository and adds malicious code (e.g., in the build script)
|
||||
* The attacker opens a PR from the fork, and, if needed, comments on the PR
|
||||
* The workflow in the base repository checks out the forked code
|
||||
* The workflow runs the malicious code
|
||||
|
||||
Please note that not only build scripts can be malicious code vectors. There is a large number of other possibilities. Some of them are listed in the [LOTP](https://boostsecurityio.github.io/lotp/) catalog.
|
||||
|
||||
## Recommendation
|
||||
|
||||
@@ -12,6 +41,8 @@ The best practice is to handle the potentially untrusted pull request via the **
|
||||
|
||||
The artifacts downloaded from the first workflow should be considered untrusted and must be verified.
|
||||
|
||||
Additionally, ensure that least privilege are used both at the workflow level (through event triggers and workflow permissions) and job level (through job permissions).
|
||||
|
||||
## Example
|
||||
|
||||
### Incorrect Usage
|
||||
@@ -133,3 +164,6 @@ jobs:
|
||||
## References
|
||||
|
||||
- GitHub Security Lab Research: [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/).
|
||||
- Mitigating risks of untrusted checkout: [GitHub Docs](https://docs.github.com/en/enterprise-cloud@latest/actions/reference/security/secure-use#mitigating-the-risks-of-untrusted-code-checkout).
|
||||
- Securing with least privilege: [Workflow secure use](https://docs.github.com/en/actions/reference/security/secure-use).
|
||||
- Living Off the Pipeline: [LOTP](https://boostsecurityio.github.io/lotp/).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @name Checkout of untrusted code in trusted context
|
||||
* @name Checkout of untrusted code in a privileged context
|
||||
* @description Privileged workflows have read/write access to the base repository and access to secrets.
|
||||
* By explicitly checking out and running the build script from a fork the untrusted code is running in an environment
|
||||
* that is able to push to the base repository and to access secrets.
|
||||
@@ -42,5 +42,6 @@ where
|
||||
not event.getName() = "issue_comment" and
|
||||
not exists(ControlCheck check | check.protects(checkout, event, "untrusted-checkout"))
|
||||
)
|
||||
select checkout, "Potential execution of untrusted code on a privileged workflow ($@)", event,
|
||||
event.getName()
|
||||
select checkout,
|
||||
"Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@).",
|
||||
event, event.getName()
|
||||
|
||||
@@ -1,6 +1,35 @@
|
||||
## Overview
|
||||
|
||||
GitHub workflows can be triggered through various repository events, including incoming pull requests (PRs) or comments on Issues/PRs. A potentially dangerous misuse of the triggers such as `pull_request_target` or `issue_comment` followed by an explicit checkout of untrusted code (Pull Request HEAD) may lead to repository compromise if untrusted code gets executed (e.g., due to a modified build script) in a privileged job.
|
||||
GitHub workflows can be triggered through various repository events, including incoming pull requests (PRs) or comments on Issues/PRs. Under certain conditions described below, attackers can take over a repository by opening malicious PRs from forks. The attacks can result in malicious code execution causing unauthorized changes to the repository or exfiltration of repository secrets and a compromise of connected systems.
|
||||
|
||||
## Workflow Security Model
|
||||
|
||||
In GitHub Actions, there is a distinction between unprivileged and privileged workflows. For example, a workflow with a `pull_request` trigger is unprivileged while a workflow with `pull_request_target` is privileged.
|
||||
|
||||
This is relevant especially for PRs from forks. Normal PRs can only be submitted by people who have write access to a repository, while PRs from forks can be submitted by anyone.
|
||||
|
||||
On a PR from a fork, an unprivileged `pull_request` workflow has only limited capabilities but a privileged `pull_request_target` workflow is much more dangerous. A privileged workflow:
|
||||
|
||||
* Runs in the context of the base repository
|
||||
* Has access to organization and repository secrets (e.g., API keys, deployment tokens)
|
||||
* Has a read/write `GITHUB_TOKEN` by default
|
||||
* Can access private resources
|
||||
|
||||
Certain triggers automatically grant a workflow elevated privileges:
|
||||
|
||||
* `pull_request_target` as described above
|
||||
* `workflow_run`: Triggered when another workflow completes.
|
||||
* `issue_comment`: Triggered when a comment is made on an issue or PR.
|
||||
|
||||
## Attack Details
|
||||
|
||||
* A repository has a privileged workflow
|
||||
* An attacker forks the repository and adds malicious code (e.g., in the build script)
|
||||
* The attacker opens a PR from the fork, and, if needed, comments on the PR
|
||||
* The workflow in the base repository checks out the forked code
|
||||
* The workflow runs the malicious code
|
||||
|
||||
Please note that not only build scripts can be malicious code vectors. There is a large number of other possibilities. Some of them are listed in the [LOTP](https://boostsecurityio.github.io/lotp/) catalog.
|
||||
|
||||
## Recommendation
|
||||
|
||||
@@ -12,6 +41,8 @@ The best practice is to handle the potentially untrusted pull request via the **
|
||||
|
||||
The artifacts downloaded from the first workflow should be considered untrusted and must be verified.
|
||||
|
||||
Additionally, ensure that least privilege are used both at the workflow level (through event triggers and workflow permissions) and job level (through job permissions).
|
||||
|
||||
## Example
|
||||
|
||||
### Incorrect Usage
|
||||
@@ -133,3 +164,6 @@ jobs:
|
||||
## References
|
||||
|
||||
- GitHub Security Lab Research: [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/).
|
||||
- Mitigating risks of untrusted checkout: [GitHub Docs](https://docs.github.com/en/enterprise-cloud@latest/actions/reference/security/secure-use#mitigating-the-risks-of-untrusted-code-checkout).
|
||||
- Securing with least privilege: [Workflow secure use](https://docs.github.com/en/actions/reference/security/secure-use).
|
||||
- Living Off the Pipeline: [LOTP](https://boostsecurityio.github.io/lotp/).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @name Checkout of untrusted code in trusted context
|
||||
* @name Checkout of untrusted code in a trusted context
|
||||
* @description Privileged workflows have read/write access to the base repository and access to secrets.
|
||||
* By explicitly checking out and running the build script from a fork the untrusted code is running in an environment
|
||||
* that is able to push to the base repository and to access secrets.
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: fix
|
||||
---
|
||||
* Fixed help file descriptions for queries: `actions/untrusted-checkout/critical`, `actions/untrusted-checkout/high`, `actions/untrusted-checkout/medium`. Previously the messages were unclear as to why and how the vulnerabilities could occur.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: queryMetadata
|
||||
---
|
||||
* Adjusted the name of `actions/untrusted-checkout/high` to more clearly describe which parts of the scenario are in a privileged context.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* The `actions/unpinned-tag` query now analyzes composite action metadata (`action.yml`/`action.yaml` files) in addition to workflow files, providing more comprehensive detection of unpinned action references across the entire Actions ecosystem.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: majorAnalysis
|
||||
---
|
||||
* Adjusted `actions/untrusted-checkout/critical` to align more with other untrusted resource queries, where the alert location is the location where the artifact is obtained from (the checkout point). This aligns with the other 2 related queries. This will cause the same alerts to re-open for closed alerts of this query.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* The `actions/unpinned-tag` query now recognizes 64-character SHA-256 commit hashes as properly pinned references, in addition to 40-character SHA-1 hashes.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* Altered the alert message for clarity for queries: `actions/untrusted-checkout/critical`, `actions/untrusted-checkout/high`.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: fix
|
||||
---
|
||||
* Adjusted (minor) help file descriptions for queries: `actions/untrusted-checkout/critical`, `actions/untrusted-checkout/high`, `actions/untrusted-checkout/medium`. Clarified wording on in minor point, added one more listed resource and added one more recommendation for things to check.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: queryMetadata
|
||||
---
|
||||
* Reversed adjustment of the name of `actions/untrusted-checkout/high`, but kept the portion of the previous change for the word "trusted" to "privileged". Added a missing "a" to phrasing in `actions/untrusted-checkout/high` and `actions/untrusted-checkout/medium`.
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/actions-queries
|
||||
version: 0.6.27
|
||||
version: 0.6.28-dev
|
||||
library: false
|
||||
warnOnImplicitThis: true
|
||||
groups: [actions, queries]
|
||||
|
||||
6
actions/ql/test/query-tests/Security/CWE-829/.github/actions/unpinned-tag/action.yml
vendored
Normal file
6
actions/ql/test/query-tests/Security/CWE-829/.github/actions/unpinned-tag/action.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
name: Composite unpinned tag test
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- uses: foo/bar@v2
|
||||
- uses: foo/bar@25b062c917b0c75f8b47d8469aff6c94ffd89abb
|
||||
@@ -11,3 +11,9 @@ jobs:
|
||||
- uses: foo/bar@25b062c917b0c75f8b47d8469aff6c94ffd89abb
|
||||
- uses: docker://foo/bar@latest
|
||||
- uses: docker://foo/bar@sha256:887a259a5a534f3c4f36cb02dca341673c6089431057242cdc931e9f133147e9
|
||||
# SHA-256 pinned (64 hex chars) - should NOT be flagged
|
||||
- uses: foo/bar@25b062c917b0c75f8b47d8469aff6c94ffd89abb25b062c917b0c75f8b47d84d
|
||||
# SHA-1 pinned (40 hex chars) regression - should NOT be flagged
|
||||
- uses: foo/bar@a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2
|
||||
# Invalid 50-char hex string - should be flagged
|
||||
- uses: foo/bar@a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2a1b2c3d4e5
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
| .github/actions/unpinned-tag/action.yml:5:13:5:22 | foo/bar@v2 | Unpinned 3rd party Action 'action.yml' step $@ uses 'foo/bar' with ref 'v2', not a pinned commit hash | .github/actions/unpinned-tag/action.yml:5:7:6:4 | Uses Step | Uses Step |
|
||||
| .github/workflows/actor_trusted_checkout.yml:19:13:19:36 | completely/fakeaction@v2 | Unpinned 3rd party Action 'actor_trusted_checkout.yml' step $@ uses 'completely/fakeaction' with ref 'v2', not a pinned commit hash | .github/workflows/actor_trusted_checkout.yml:19:7:23:4 | Uses Step | Uses Step |
|
||||
| .github/workflows/actor_trusted_checkout.yml:23:13:23:37 | fakerepo/comment-on-pr@v1 | Unpinned 3rd party Action 'actor_trusted_checkout.yml' step $@ uses 'fakerepo/comment-on-pr' with ref 'v1', not a pinned commit hash | .github/workflows/actor_trusted_checkout.yml:23:7:26:21 | Uses Step | Uses Step |
|
||||
| .github/workflows/artifactpoisoning21.yml:13:15:13:49 | dawidd6/action-download-artifact@v2 | Unpinned 3rd party Action 'Pull Request Open' step $@ uses 'dawidd6/action-download-artifact' with ref 'v2', not a pinned commit hash | .github/workflows/artifactpoisoning21.yml:13:9:18:6 | Uses Step | Uses Step |
|
||||
@@ -33,3 +34,4 @@
|
||||
| .github/workflows/test18.yml:37:21:37:63 | sonarsource/sonarcloud-github-action@master | Unpinned 3rd party Action 'Sonar' step $@ uses 'sonarsource/sonarcloud-github-action' with ref 'master', not a pinned commit hash | .github/workflows/test18.yml:36:15:40:58 | Uses Step | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:10:13:10:22 | foo/bar@v1 | Unpinned 3rd party Action 'unpinned_tags.yml' step $@ uses 'foo/bar' with ref 'v1', not a pinned commit hash | .github/workflows/unpinned_tags.yml:10:7:11:4 | Uses Step | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:12:13:12:35 | docker://foo/bar@latest | Unpinned 3rd party Action 'unpinned_tags.yml' step $@ uses 'docker://foo/bar' with ref 'latest', not a pinned commit hash | .github/workflows/unpinned_tags.yml:12:7:13:4 | Uses Step | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:19:13:19:70 | foo/bar@a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2a1b2c3d4e5 | Unpinned 3rd party Action 'unpinned_tags.yml' step $@ uses 'foo/bar' with ref 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2a1b2c3d4e5', not a pinned commit hash | .github/workflows/unpinned_tags.yml:19:7:19:71 | Uses Step | Uses Step |
|
||||
|
||||
@@ -8,6 +8,7 @@ edges
|
||||
| .github/actions/download-artifact/action.yaml:25:7:29:4 | Run Step | .github/actions/download-artifact/action.yaml:29:7:32:18 | Run Step |
|
||||
| .github/actions/download-artifact/action.yaml:29:7:32:18 | Run Step | .github/workflows/artifactpoisoning91.yml:19:9:25:6 | Run Step: metadata |
|
||||
| .github/actions/download-artifact/action.yaml:29:7:32:18 | Run Step | .github/workflows/resolve-args.yml:22:9:36:13 | Run Step: resolve-step |
|
||||
| .github/actions/unpinned-tag/action.yml:5:7:6:4 | Uses Step | .github/actions/unpinned-tag/action.yml:6:7:6:61 | Uses Step |
|
||||
| .github/workflows/actor_trusted_checkout.yml:9:7:14:4 | Uses Step | .github/workflows/actor_trusted_checkout.yml:14:7:15:4 | Uses Step |
|
||||
| .github/workflows/actor_trusted_checkout.yml:14:7:15:4 | Uses Step | .github/workflows/actor_trusted_checkout.yml:15:7:19:4 | Run Step |
|
||||
| .github/workflows/actor_trusted_checkout.yml:15:7:19:4 | Run Step | .github/workflows/actor_trusted_checkout.yml:19:7:23:4 | Uses Step |
|
||||
@@ -311,7 +312,10 @@ edges
|
||||
| .github/workflows/unpinned_tags.yml:9:7:10:4 | Uses Step | .github/workflows/unpinned_tags.yml:10:7:11:4 | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:10:7:11:4 | Uses Step | .github/workflows/unpinned_tags.yml:11:7:12:4 | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:11:7:12:4 | Uses Step | .github/workflows/unpinned_tags.yml:12:7:13:4 | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:12:7:13:4 | Uses Step | .github/workflows/unpinned_tags.yml:13:7:13:101 | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:12:7:13:4 | Uses Step | .github/workflows/unpinned_tags.yml:13:7:15:4 | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:13:7:15:4 | Uses Step | .github/workflows/unpinned_tags.yml:15:7:17:4 | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:15:7:17:4 | Uses Step | .github/workflows/unpinned_tags.yml:17:7:19:4 | Uses Step |
|
||||
| .github/workflows/unpinned_tags.yml:17:7:19:4 | Uses Step | .github/workflows/unpinned_tags.yml:19:7:19:71 | Uses Step |
|
||||
| .github/workflows/untrusted_checkout2.yml:7:9:14:6 | Run Step: pr_number | .github/workflows/untrusted_checkout2.yml:14:9:19:72 | Run Step |
|
||||
| .github/workflows/untrusted_checkout3.yml:11:9:12:6 | Uses Step | .github/workflows/untrusted_checkout3.yml:12:9:13:6 | Uses Step |
|
||||
| .github/workflows/untrusted_checkout3.yml:12:9:13:6 | Uses Step | .github/actions/dangerous-git-checkout/action.yml:6:7:11:4 | Uses Step |
|
||||
@@ -334,42 +338,42 @@ edges
|
||||
| .github/workflows/workflow_run_untrusted_checkout_2.yml:13:9:16:6 | Uses Step | .github/workflows/workflow_run_untrusted_checkout_2.yml:16:9:18:31 | Uses Step |
|
||||
| .github/workflows/workflow_run_untrusted_checkout_3.yml:13:9:16:6 | Uses Step | .github/workflows/workflow_run_untrusted_checkout_3.yml:16:9:18:31 | Uses Step |
|
||||
#select
|
||||
| .github/workflows/auto_ci.yml:32:9:37:6 | Run Step | .github/workflows/auto_ci.yml:20:9:27:6 | Uses Step | .github/workflows/auto_ci.yml:32:9:37:6 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/auto_ci.yml:48:9:52:2 | Run Step | .github/workflows/auto_ci.yml:20:9:27:6 | Uses Step | .github/workflows/auto_ci.yml:48:9:52:2 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/auto_ci.yml:79:9:84:6 | Run Step | .github/workflows/auto_ci.yml:67:9:74:6 | Uses Step | .github/workflows/auto_ci.yml:79:9:84:6 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/auto_ci.yml:84:9:93:6 | Run Step | .github/workflows/auto_ci.yml:67:9:74:6 | Uses Step | .github/workflows/auto_ci.yml:84:9:93:6 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/dependabot3.yml:25:9:48:6 | Run Step: set-milestone | .github/workflows/dependabot3.yml:15:9:20:6 | Uses Step | .github/workflows/dependabot3.yml:25:9:48:6 | Run Step: set-milestone | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/dependabot3.yml:3:5:3:23 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/external/TestOrg/TestRepo/.github/workflows/reusable.yml:26:9:29:7 | Run Step | .github/workflows/external/TestOrg/TestRepo/.github/workflows/reusable.yml:23:9:26:6 | Uses Step | .github/workflows/external/TestOrg/TestRepo/.github/workflows/reusable.yml:26:9:29:7 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/reusable_caller1.yaml:4:3:4:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/gitcheckout.yml:21:11:23:22 | Run Step | .github/workflows/gitcheckout.yml:10:11:18:8 | Run Step | .github/workflows/gitcheckout.yml:21:11:23:22 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/gitcheckout.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/label_trusted_checkout2.yml:17:7:21:4 | Run Step | .github/workflows/label_trusted_checkout2.yml:12:7:16:4 | Uses Step | .github/workflows/label_trusted_checkout2.yml:17:7:21:4 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/label_trusted_checkout2.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/level0.yml:107:9:112:2 | Run Step | .github/workflows/level0.yml:99:9:103:6 | Uses Step | .github/workflows/level0.yml:107:9:112:2 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/level0.yml:5:3:5:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/level0.yml:107:9:112:2 | Run Step | .github/workflows/level0.yml:99:9:103:6 | Uses Step | .github/workflows/level0.yml:107:9:112:2 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/level0.yml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/level0.yml:133:9:135:23 | Run Step | .github/workflows/level0.yml:125:9:129:6 | Uses Step | .github/workflows/level0.yml:133:9:135:23 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/level0.yml:5:3:5:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/level0.yml:133:9:135:23 | Run Step | .github/workflows/level0.yml:125:9:129:6 | Uses Step | .github/workflows/level0.yml:133:9:135:23 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/level0.yml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/poc2.yml:42:9:47:6 | Uses Step | .github/workflows/poc2.yml:37:9:42:6 | Uses Step | .github/workflows/poc2.yml:42:9:47:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/poc2.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/poc2.yml:52:9:58:24 | Run Step | .github/workflows/poc2.yml:37:9:42:6 | Uses Step | .github/workflows/poc2.yml:52:9:58:24 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/poc2.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/pr-workflow.yml:222:9:227:6 | Uses Step | .github/workflows/pr-workflow.yml:216:9:222:6 | Uses Step | .github/workflows/pr-workflow.yml:222:9:227:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:256:9:261:6 | Uses Step | .github/workflows/pr-workflow.yml:250:9:256:6 | Uses Step | .github/workflows/pr-workflow.yml:256:9:261:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:290:9:295:6 | Uses Step | .github/workflows/pr-workflow.yml:284:9:290:6 | Uses Step | .github/workflows/pr-workflow.yml:290:9:295:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:391:9:395:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:391:9:395:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:395:9:404:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:395:9:404:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:404:9:414:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:404:9:414:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:414:9:423:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:414:9:423:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:423:9:432:2 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:423:9:432:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/reusable_local.yml:26:9:29:7 | Run Step | .github/workflows/reusable_local.yml:23:9:26:6 | Uses Step | .github/workflows/reusable_local.yml:26:9:29:7 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/reusable_caller3.yaml:4:3:4:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/test7.yml:33:9:36:6 | Run Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:33:9:36:6 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:36:9:39:6 | Run Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:36:9:39:6 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:49:9:59:6 | Run Step: benchmark-pr | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:49:9:59:6 | Run Step: benchmark-pr | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:59:9:60:6 | Run Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:59:9:60:6 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:60:9:60:37 | Run Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:60:9:60:37 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test10.yml:25:9:30:2 | Run Step | .github/workflows/test10.yml:20:9:25:6 | Uses Step | .github/workflows/test10.yml:25:9:30:2 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test10.yml:8:3:8:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/test11.yml:90:7:93:54 | Uses Step | .github/workflows/test11.yml:84:7:90:4 | Uses Step | .github/workflows/test11.yml:90:7:93:54 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test11.yml:5:3:5:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test17.yml:19:15:23:58 | Uses Step | .github/workflows/test17.yml:12:15:19:12 | Uses Step | .github/workflows/test17.yml:19:15:23:58 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test17.yml:3:5:3:16 | workflow_run | workflow_run |
|
||||
| .github/workflows/test27.yml:21:9:22:16 | Run Step | .github/workflows/test27.yml:18:9:21:6 | Uses Step | .github/workflows/test27.yml:21:9:22:16 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test26.yml:4:3:4:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/test29.yml:14:7:21:11 | Uses Step | .github/workflows/test29.yml:8:7:14:4 | Uses Step | .github/workflows/test29.yml:14:7:21:11 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test29.yml:1:5:1:23 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/untrusted_checkout3.yml:13:9:13:23 | Run Step | .github/actions/dangerous-git-checkout/action.yml:6:7:11:4 | Uses Step | .github/workflows/untrusted_checkout3.yml:13:9:13:23 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/untrusted_checkout3.yml:4:3:4:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/untrusted_checkout4.yml:35:7:41:4 | Run Step | .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:35:7:41:4 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/untrusted_checkout4.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout4.yml:41:7:47:4 | Run Step | .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:41:7:47:4 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/untrusted_checkout4.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout4.yml:47:7:51:46 | Run Step | .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:47:7:51:46 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/untrusted_checkout4.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout.yml:15:9:18:2 | Run Step | .github/workflows/untrusted_checkout.yml:8:9:11:6 | Uses Step | .github/workflows/untrusted_checkout.yml:15:9:18:2 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/untrusted_checkout.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/untrusted_checkout.yml:30:9:32:23 | Run Step | .github/workflows/untrusted_checkout.yml:23:9:26:6 | Uses Step | .github/workflows/untrusted_checkout.yml:30:9:32:23 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/untrusted_checkout.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
| .github/actions/dangerous-git-checkout/action.yml:6:7:11:4 | Uses Step | .github/actions/dangerous-git-checkout/action.yml:6:7:11:4 | Uses Step | .github/workflows/untrusted_checkout3.yml:13:9:13:23 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/untrusted_checkout3.yml:4:3:4:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/auto_ci.yml:20:9:27:6 | Uses Step | .github/workflows/auto_ci.yml:20:9:27:6 | Uses Step | .github/workflows/auto_ci.yml:32:9:37:6 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/auto_ci.yml:20:9:27:6 | Uses Step | .github/workflows/auto_ci.yml:20:9:27:6 | Uses Step | .github/workflows/auto_ci.yml:48:9:52:2 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/auto_ci.yml:67:9:74:6 | Uses Step | .github/workflows/auto_ci.yml:67:9:74:6 | Uses Step | .github/workflows/auto_ci.yml:79:9:84:6 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/auto_ci.yml:67:9:74:6 | Uses Step | .github/workflows/auto_ci.yml:67:9:74:6 | Uses Step | .github/workflows/auto_ci.yml:84:9:93:6 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/auto_ci.yml:6:3:6:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/dependabot3.yml:15:9:20:6 | Uses Step | .github/workflows/dependabot3.yml:15:9:20:6 | Uses Step | .github/workflows/dependabot3.yml:25:9:48:6 | Run Step: set-milestone | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/dependabot3.yml:3:5:3:23 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/external/TestOrg/TestRepo/.github/workflows/reusable.yml:23:9:26:6 | Uses Step | .github/workflows/external/TestOrg/TestRepo/.github/workflows/reusable.yml:23:9:26:6 | Uses Step | .github/workflows/external/TestOrg/TestRepo/.github/workflows/reusable.yml:26:9:29:7 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/reusable_caller1.yaml:4:3:4:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/gitcheckout.yml:10:11:18:8 | Run Step | .github/workflows/gitcheckout.yml:10:11:18:8 | Run Step | .github/workflows/gitcheckout.yml:21:11:23:22 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/gitcheckout.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/label_trusted_checkout2.yml:12:7:16:4 | Uses Step | .github/workflows/label_trusted_checkout2.yml:12:7:16:4 | Uses Step | .github/workflows/label_trusted_checkout2.yml:17:7:21:4 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/label_trusted_checkout2.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/level0.yml:99:9:103:6 | Uses Step | .github/workflows/level0.yml:99:9:103:6 | Uses Step | .github/workflows/level0.yml:107:9:112:2 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/level0.yml:5:3:5:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/level0.yml:99:9:103:6 | Uses Step | .github/workflows/level0.yml:99:9:103:6 | Uses Step | .github/workflows/level0.yml:107:9:112:2 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/level0.yml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/level0.yml:125:9:129:6 | Uses Step | .github/workflows/level0.yml:125:9:129:6 | Uses Step | .github/workflows/level0.yml:133:9:135:23 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/level0.yml:5:3:5:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/level0.yml:125:9:129:6 | Uses Step | .github/workflows/level0.yml:125:9:129:6 | Uses Step | .github/workflows/level0.yml:133:9:135:23 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/level0.yml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/poc2.yml:37:9:42:6 | Uses Step | .github/workflows/poc2.yml:37:9:42:6 | Uses Step | .github/workflows/poc2.yml:42:9:47:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/poc2.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/poc2.yml:37:9:42:6 | Uses Step | .github/workflows/poc2.yml:37:9:42:6 | Uses Step | .github/workflows/poc2.yml:52:9:58:24 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/poc2.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/pr-workflow.yml:216:9:222:6 | Uses Step | .github/workflows/pr-workflow.yml:216:9:222:6 | Uses Step | .github/workflows/pr-workflow.yml:222:9:227:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:250:9:256:6 | Uses Step | .github/workflows/pr-workflow.yml:250:9:256:6 | Uses Step | .github/workflows/pr-workflow.yml:256:9:261:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:284:9:290:6 | Uses Step | .github/workflows/pr-workflow.yml:284:9:290:6 | Uses Step | .github/workflows/pr-workflow.yml:290:9:295:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:391:9:395:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:395:9:404:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:404:9:414:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:414:9:423:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:386:9:391:6 | Uses Step | .github/workflows/pr-workflow.yml:423:9:432:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/reusable_local.yml:23:9:26:6 | Uses Step | .github/workflows/reusable_local.yml:23:9:26:6 | Uses Step | .github/workflows/reusable_local.yml:26:9:29:7 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/reusable_caller3.yaml:4:3:4:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:33:9:36:6 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:36:9:39:6 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:49:9:59:6 | Run Step: benchmark-pr | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:59:9:60:6 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:19:9:24:6 | Uses Step | .github/workflows/test7.yml:60:9:60:37 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test7.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test10.yml:20:9:25:6 | Uses Step | .github/workflows/test10.yml:20:9:25:6 | Uses Step | .github/workflows/test10.yml:25:9:30:2 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test10.yml:8:3:8:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/test11.yml:84:7:90:4 | Uses Step | .github/workflows/test11.yml:84:7:90:4 | Uses Step | .github/workflows/test11.yml:90:7:93:54 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test11.yml:5:3:5:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/test17.yml:12:15:19:12 | Uses Step | .github/workflows/test17.yml:12:15:19:12 | Uses Step | .github/workflows/test17.yml:19:15:23:58 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test17.yml:3:5:3:16 | workflow_run | workflow_run |
|
||||
| .github/workflows/test27.yml:18:9:21:6 | Uses Step | .github/workflows/test27.yml:18:9:21:6 | Uses Step | .github/workflows/test27.yml:21:9:22:16 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test26.yml:4:3:4:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/test29.yml:8:7:14:4 | Uses Step | .github/workflows/test29.yml:8:7:14:4 | Uses Step | .github/workflows/test29.yml:14:7:21:11 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test29.yml:1:5:1:23 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:35:7:41:4 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/untrusted_checkout4.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:41:7:47:4 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/untrusted_checkout4.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:29:7:35:4 | Uses Step | .github/workflows/untrusted_checkout4.yml:47:7:51:46 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/untrusted_checkout4.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout.yml:8:9:11:6 | Uses Step | .github/workflows/untrusted_checkout.yml:8:9:11:6 | Uses Step | .github/workflows/untrusted_checkout.yml:15:9:18:2 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/untrusted_checkout.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/untrusted_checkout.yml:23:9:26:6 | Uses Step | .github/workflows/untrusted_checkout.yml:23:9:26:6 | Uses Step | .github/workflows/untrusted_checkout.yml:30:9:32:23 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/untrusted_checkout.yml:2:3:2:21 | pull_request_target | pull_request_target |
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
| .github/workflows/issue_comment_direct.yml:12:9:16:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:20:9:24:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:28:9:32:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:35:9:40:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:43:9:46:126 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_heuristic.yml:28:9:33:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_heuristic.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_heuristic.yml:48:7:50:46 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_heuristic.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit2.yml:27:9:31:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_octokit2.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:26:9:30:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:30:9:35:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:57:9:62:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:79:9:83:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:95:9:100:2 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:109:9:114:66 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/pr-workflow.yml:103:9:109:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:139:9:144:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:444:9:449:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/test13.yml:20:7:25:4 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/test13.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout2.yml:14:9:19:72 | Run Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/untrusted_checkout2.yml:1:5:1:17 | issue_comment | issue_comment |
|
||||
| .github/workflows/workflow_run_untrusted_checkout.yml:13:9:16:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/workflow_run_untrusted_checkout.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/workflow_run_untrusted_checkout.yml:16:9:18:31 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/workflow_run_untrusted_checkout.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/workflow_run_untrusted_checkout_2.yml:13:9:16:6 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/workflow_run_untrusted_checkout_2.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/workflow_run_untrusted_checkout_2.yml:16:9:18:31 | Uses Step | Potential execution of untrusted code on a privileged workflow ($@) | .github/workflows/workflow_run_untrusted_checkout_2.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/issue_comment_direct.yml:12:9:16:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:20:9:24:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:28:9:32:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:35:9:40:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_direct.yml:43:9:46:126 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_direct.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_heuristic.yml:28:9:33:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_heuristic.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_heuristic.yml:48:7:50:46 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_heuristic.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit2.yml:27:9:31:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_octokit2.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:26:9:30:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:30:9:35:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:57:9:62:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:79:9:83:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:95:9:100:2 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/issue_comment_octokit.yml:109:9:114:66 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/issue_comment_octokit.yml:4:3:4:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/pr-workflow.yml:103:9:109:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:139:9:144:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/pr-workflow.yml:444:9:449:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/pr-workflow-fork.yaml:7:3:7:21 | pull_request_target | pull_request_target |
|
||||
| .github/workflows/test13.yml:20:7:25:4 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/test13.yml:2:3:2:15 | issue_comment | issue_comment |
|
||||
| .github/workflows/untrusted_checkout2.yml:14:9:19:72 | Run Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/untrusted_checkout2.yml:1:5:1:17 | issue_comment | issue_comment |
|
||||
| .github/workflows/workflow_run_untrusted_checkout.yml:13:9:16:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/workflow_run_untrusted_checkout.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/workflow_run_untrusted_checkout.yml:16:9:18:31 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/workflow_run_untrusted_checkout.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/workflow_run_untrusted_checkout_2.yml:13:9:16:6 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/workflow_run_untrusted_checkout_2.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
| .github/workflows/workflow_run_untrusted_checkout_2.yml:16:9:18:31 | Uses Step | Checkout of untrusted code in a privileged workflow with later potential execution (event trigger: $@). | .github/workflows/workflow_run_untrusted_checkout_2.yml:2:3:2:14 | workflow_run | workflow_run |
|
||||
|
||||
2561
cpp/downgrades/837c4e02326aee4582405d069263092e80a15d82/old.dbscheme
Normal file
2561
cpp/downgrades/837c4e02326aee4582405d069263092e80a15d82/old.dbscheme
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
description: Support alias templates
|
||||
compatibility: full
|
||||
is_alias_template.rel: delete
|
||||
alias_instantiation.rel: delete
|
||||
alias_template_argument.rel: delete
|
||||
alias_template_argument_value.rel: delete
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* The `RemoteFlowSourceFunction` model for `fscanf` (and variants) now implements `hasSocketInput` to reflect that these functions may read from a socket.
|
||||
4
cpp/ql/lib/change-notes/2026-05-16-alias-template.md
Normal file
4
cpp/ql/lib/change-notes/2026-05-16-alias-template.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: feature
|
||||
---
|
||||
* Added `AliasTemplateType` and `AliasTemplateInstantiationType` classes, representing C++ alias templates and their instantiations.
|
||||
4
cpp/ql/lib/change-notes/2026-05-18-alias-type.md
Normal file
4
cpp/ql/lib/change-notes/2026-05-18-alias-type.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: deprecated
|
||||
---
|
||||
* The `UsingAliasTypedefType` class has been deprecated. Use `TypeAliasType` instead.
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/cpp-all
|
||||
version: 10.1.0
|
||||
version: 10.1.1-dev
|
||||
groups: cpp
|
||||
dbscheme: semmlecode.cpp.dbscheme
|
||||
extractor: cpp
|
||||
|
||||
@@ -278,6 +278,8 @@ class Declaration extends Locatable, @declaration {
|
||||
or
|
||||
variable_template_argument(underlyingElement(this), index, unresolveElement(result))
|
||||
or
|
||||
alias_template_argument(underlyingElement(this), index, unresolveElement(result))
|
||||
or
|
||||
template_template_argument(underlyingElement(this), index, unresolveElement(result))
|
||||
or
|
||||
concept_template_argument(underlyingElement(this), index, unresolveElement(result))
|
||||
@@ -290,6 +292,8 @@ class Declaration extends Locatable, @declaration {
|
||||
or
|
||||
variable_template_argument_value(underlyingElement(this), index, unresolveElement(result))
|
||||
or
|
||||
alias_template_argument_value(underlyingElement(this), index, unresolveElement(result))
|
||||
or
|
||||
template_template_argument_value(underlyingElement(this), index, unresolveElement(result))
|
||||
or
|
||||
concept_template_argument_value(underlyingElement(this), index, unresolveElement(result))
|
||||
|
||||
@@ -278,6 +278,15 @@ private predicate isFromTemplateInstantiationRec(Element e, Element instantiatio
|
||||
instantiation.(Variable).isConstructedFrom(_) and
|
||||
e = instantiation
|
||||
or
|
||||
instantiation.(TypeAliasType).isConstructedFrom(_) and
|
||||
e = instantiation
|
||||
or
|
||||
instantiation.(TemplateTemplateParameterInstantiation).isConstructedFrom(_) and
|
||||
e = instantiation
|
||||
or
|
||||
exists(instantiation.(ConceptIdExpr).getConcept()) and
|
||||
e = instantiation
|
||||
or
|
||||
isFromTemplateInstantiationRec(e.getEnclosingElement(), instantiation)
|
||||
}
|
||||
|
||||
@@ -291,6 +300,15 @@ private predicate isFromUninstantiatedTemplateRec(Element e, Element template) {
|
||||
is_variable_template(unresolveElement(template)) and
|
||||
e = template
|
||||
or
|
||||
is_alias_template(unresolveElement(template)) and
|
||||
e = template
|
||||
or
|
||||
usertypes(unresolveElement(template), _, 8) and // template template parameter
|
||||
e = template
|
||||
or
|
||||
template instanceof @concept_template and
|
||||
e = template
|
||||
or
|
||||
isFromUninstantiatedTemplateRec(e.getEnclosingElement(), template)
|
||||
}
|
||||
|
||||
|
||||
@@ -64,23 +64,102 @@ class CTypedefType extends TypedefType {
|
||||
}
|
||||
|
||||
/**
|
||||
* A using alias C++ typedef type. For example the type declared in the following code:
|
||||
* DEPRECATED: Use `TypeAlias` instead.
|
||||
*
|
||||
* A C++ type alias or alias template.
|
||||
*
|
||||
* For example the type declared in the following code:
|
||||
* ```
|
||||
* using my_int2 = int;
|
||||
* ```
|
||||
*/
|
||||
class UsingAliasTypedefType extends TypedefType {
|
||||
UsingAliasTypedefType() { usertype_alias_kind(underlyingElement(this), 1) }
|
||||
deprecated class UsingAliasTypedefType = TypeAliasType;
|
||||
|
||||
override string getAPrimaryQlClass() { result = "UsingAliasTypedefType" }
|
||||
/**
|
||||
* A C++ type alias or alias template.
|
||||
*
|
||||
* For example the type declared in the following code:
|
||||
* ```
|
||||
* using my_int2 = int;
|
||||
* ```
|
||||
*/
|
||||
class TypeAliasType extends TypedefType {
|
||||
TypeAliasType() { usertype_alias_kind(underlyingElement(this), 1) }
|
||||
|
||||
override string getAPrimaryQlClass() { result = "TypeAliasType" }
|
||||
|
||||
override string explain() {
|
||||
result = "using {" + this.getBaseType().explain() + "} as \"" + this.getName() + "\""
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if this alias is constructed from another alias as a result of
|
||||
* template instantiation.
|
||||
*/
|
||||
predicate isConstructedFrom(TypeAliasType t) {
|
||||
alias_instantiation(underlyingElement(this), unresolveElement(t))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A C++ `typedef` type that is directly enclosed by a function. For example the type declared inside the function `foo` in
|
||||
* A C++ alias template.
|
||||
*
|
||||
* For example the type declared in the following code:
|
||||
* ```
|
||||
* template <typename T>
|
||||
* using my_type = T;
|
||||
* ```
|
||||
*/
|
||||
class AliasTemplateType extends TypeAliasType {
|
||||
AliasTemplateType() { is_alias_template(underlyingElement(this)) }
|
||||
|
||||
override string getAPrimaryQlClass() { result = "AliasTemplateType" }
|
||||
|
||||
/**
|
||||
* Gets an alias instantiated from this template.
|
||||
*
|
||||
* For example for `MyAliasTemplate<T>` in the following code, the results are
|
||||
* `MyAliasTemplate<int>` and `MyAliasTemplate<long>`:
|
||||
* ```
|
||||
* template<typename T>
|
||||
* using MyAliasTemplate = ...;
|
||||
*
|
||||
* MyAliasTemplate<int> instance1;
|
||||
*
|
||||
* MyAliasTemplate<long> instance2;
|
||||
* ```
|
||||
*/
|
||||
TypeAliasType getAnInstantiation() { result.isConstructedFrom(this) }
|
||||
}
|
||||
|
||||
/**
|
||||
* A C++ alias template instantiation.
|
||||
*
|
||||
* For example the `my_int_type` type declared in the following code:
|
||||
* ```
|
||||
* template <typename T>
|
||||
* using my_type = T;
|
||||
*
|
||||
* using my_int_type = my_type<int>;
|
||||
* ```
|
||||
*/
|
||||
class AliasTemplateInstantiationType extends TypeAliasType {
|
||||
AliasTemplateType at;
|
||||
|
||||
AliasTemplateInstantiationType() { at.getAnInstantiation() = this }
|
||||
|
||||
override string getAPrimaryQlClass() { result = "AliasTemplateInstantiationType" }
|
||||
|
||||
/**
|
||||
* Gets the alias template from which this instantiation was instantiated.
|
||||
*/
|
||||
AliasTemplateType getTemplate() { result = at }
|
||||
}
|
||||
|
||||
/**
|
||||
* A C++ `typedef` type that is directly enclosed by a function.
|
||||
*
|
||||
* For example the type declared inside the function `foo` in
|
||||
* the following code:
|
||||
* ```
|
||||
* int foo(void) { typedef int local; }
|
||||
|
||||
@@ -136,7 +136,9 @@ private module SourceVariables {
|
||||
NormalSourceVariable() { this = TNormalSourceVariable(base, ind) }
|
||||
|
||||
final override string toString() {
|
||||
result = repeatStars(this.getIndirection()) + base.toString()
|
||||
if this.getIndirection() = 0
|
||||
then result = "&" + base.toString()
|
||||
else result = repeatStars(this.getIndirection() - 1) + base.toString()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +159,9 @@ private module SourceVariables {
|
||||
}
|
||||
|
||||
final override string toString() {
|
||||
result = repeatStars(this.getIndirection()) + base.toString() + " [before crement]"
|
||||
if this.getIndirection() = 0
|
||||
then result = "&" + base.toString() + " [before crement]"
|
||||
else result = repeatStars(this.getIndirection() - 1) + base.toString() + " [before crement]"
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1353,6 +1357,52 @@ class PhiNode extends Definition instanceof SsaImpl::PhiNode {
|
||||
final predicate hasInputFromBlock(Definition input, IRBlock bb) {
|
||||
phiHasInputFromBlock(this, input, bb)
|
||||
}
|
||||
|
||||
override int getIndirection() { result = this.getSourceVariable().getIndirection() }
|
||||
|
||||
override predicate isCertain() {
|
||||
// If this phi node is part of a phi cycle of phi nodes the least
|
||||
// fixed-point semantics of datalog means we don't get the right answer.
|
||||
// So we perform an SCC reduction to simulate greatest fixed-point semantics.
|
||||
getCycle(this).isCertain()
|
||||
or
|
||||
// If there is no cycle we get the right semantics through traditional
|
||||
// recursion.
|
||||
not exists(getCycle(this)) and
|
||||
forex(Definition inp | inp = this.getAnInput() | inp.isCertain())
|
||||
}
|
||||
|
||||
final override Declaration getFunction() {
|
||||
result = SsaImpl::PhiNode.super.getBasicBlock().getEnclosingFunction()
|
||||
}
|
||||
}
|
||||
|
||||
private PhiNode getAnInput(PhiNode phi) { result = phi.getAnInput() }
|
||||
|
||||
private predicate sccEdge(PhiNode phi1, PhiNode phi2) {
|
||||
getAnInput(phi1) = phi2 and getAnInput+(phi2) = phi1
|
||||
}
|
||||
|
||||
private module PhiCycleEquivalence = QlBuiltins::EquivalenceRelation<PhiNode, sccEdge/2>;
|
||||
|
||||
private PhiCycle getCycle(PhiNode phi) { result.getAPhiNode() = phi }
|
||||
|
||||
private class PhiCycle extends PhiCycleEquivalence::EquivalenceClass {
|
||||
PhiNode getAPhiNode() { PhiCycleEquivalence::getEquivalenceClass(result) = this }
|
||||
|
||||
predicate hasPhiNode(PhiNode phi) { this.getAPhiNode() = phi }
|
||||
|
||||
pragma[nomagic]
|
||||
Definition getAnInput() {
|
||||
result = this.getAPhiNode().getAnInput() and not this.hasPhiNode(result)
|
||||
}
|
||||
|
||||
string toString() { result = strictconcat(this.getAPhiNode().toString(), ", ") }
|
||||
|
||||
predicate isCertain() {
|
||||
// A phi cycle is certain if all of the inputs into the phi cycle is certain.
|
||||
forex(Definition inp | inp = this.getAnInput() | inp.isCertain())
|
||||
}
|
||||
}
|
||||
|
||||
/** An static single assignment (SSA) definition. */
|
||||
|
||||
@@ -147,7 +147,7 @@ abstract class Indirection extends Type {
|
||||
*
|
||||
* `certain` is `true` if this write is guaranteed to write to the address.
|
||||
*/
|
||||
predicate isAdditionalWrite(Node0Impl value, Operand address, boolean certain) { none() }
|
||||
predicate isAdditionalWrite(Node0Impl value, Operand address, Certainty certain) { none() }
|
||||
|
||||
/**
|
||||
* Gets the base type of this indirection, after specifiers have been deeply
|
||||
@@ -198,11 +198,11 @@ private module IteratorIndirections {
|
||||
baseType = super.getValueType()
|
||||
}
|
||||
|
||||
override predicate isAdditionalWrite(Node0Impl value, Operand address, boolean certain) {
|
||||
override predicate isAdditionalWrite(Node0Impl value, Operand address, Certainty certain) {
|
||||
exists(CallInstruction call | call.getArgumentOperand(0) = value.asOperand() |
|
||||
this = call.getStaticCallTarget().(Function).getClassAndName("operator=") and
|
||||
address = call.getThisArgumentOperand() and
|
||||
certain = false
|
||||
certain instanceof AlwaysUncertain
|
||||
)
|
||||
}
|
||||
|
||||
@@ -271,30 +271,62 @@ predicate isDereference(Instruction deref, Operand address, boolean additional)
|
||||
additional = false
|
||||
}
|
||||
|
||||
predicate isWrite(Node0Impl value, Operand address, boolean certain) {
|
||||
private newtype TCertainty =
|
||||
TCertainWhenAddressIsCertain() or
|
||||
TAlwaysCertain() or
|
||||
TAlwaysUncertain()
|
||||
|
||||
abstract private class Certainty extends TCertainty {
|
||||
abstract predicate isCertain(boolean addressIsCertain);
|
||||
|
||||
abstract string toString();
|
||||
}
|
||||
|
||||
private class CertainWhenAddressIsCertain extends Certainty, TCertainWhenAddressIsCertain {
|
||||
override predicate isCertain(boolean addressIsCertain) { addressIsCertain = true }
|
||||
|
||||
override string toString() { result = "CertainWhenAddressIsCertain" }
|
||||
}
|
||||
|
||||
private class AlwaysCertain extends Certainty, TAlwaysCertain {
|
||||
override predicate isCertain(boolean addressIsCertain) {
|
||||
addressIsCertain = true or addressIsCertain = false
|
||||
}
|
||||
|
||||
override string toString() { result = "AlwaysCertain" }
|
||||
}
|
||||
|
||||
private class AlwaysUncertain extends Certainty, TAlwaysUncertain {
|
||||
override predicate isCertain(boolean addressIsCertain) { none() }
|
||||
|
||||
override string toString() { result = "AlwaysUncertain" }
|
||||
}
|
||||
|
||||
predicate isWrite(Node0Impl value, Operand address, Certainty certain) {
|
||||
any(Indirection ind).isAdditionalWrite(value, address, certain)
|
||||
or
|
||||
certain = true and
|
||||
(
|
||||
exists(StoreInstruction store |
|
||||
value.asInstruction() = store and
|
||||
address = store.getDestinationAddressOperand()
|
||||
)
|
||||
or
|
||||
exists(InitializeParameterInstruction init |
|
||||
value.asInstruction() = init and
|
||||
address = init.getAnOperand()
|
||||
)
|
||||
or
|
||||
exists(InitializeDynamicAllocationInstruction init |
|
||||
value.asInstruction() = init and
|
||||
address = init.getAllocationAddressOperand()
|
||||
)
|
||||
or
|
||||
exists(UninitializedInstruction uninitialized |
|
||||
value.asInstruction() = uninitialized and
|
||||
address = uninitialized.getAnOperand()
|
||||
)
|
||||
exists(StoreInstruction store |
|
||||
value.asInstruction() = store and
|
||||
address = store.getDestinationAddressOperand() and
|
||||
certain instanceof CertainWhenAddressIsCertain
|
||||
)
|
||||
or
|
||||
exists(InitializeParameterInstruction init |
|
||||
value.asInstruction() = init and
|
||||
address = init.getAnOperand() and
|
||||
certain instanceof AlwaysCertain
|
||||
)
|
||||
or
|
||||
exists(InitializeDynamicAllocationInstruction init |
|
||||
value.asInstruction() = init and
|
||||
address = init.getAllocationAddressOperand() and
|
||||
certain instanceof AlwaysCertain
|
||||
)
|
||||
or
|
||||
exists(UninitializedInstruction uninitialized |
|
||||
value.asInstruction() = uninitialized and
|
||||
address = uninitialized.getAnOperand() and
|
||||
certain instanceof AlwaysCertain
|
||||
)
|
||||
}
|
||||
|
||||
@@ -718,16 +750,18 @@ private module Cached {
|
||||
int indirectionIndex
|
||||
) {
|
||||
exists(
|
||||
boolean writeIsCertain, boolean addressIsCertain, int ind0, CppType type, int lower, int upper
|
||||
Certainty writeIsCertain, boolean addressIsCertain, int ind0, CppType type, int lower,
|
||||
int upper
|
||||
|
|
||||
isWrite(value, address, writeIsCertain) and
|
||||
isDefImpl(address, base, ind0, addressIsCertain) and
|
||||
certain = writeIsCertain.booleanAnd(addressIsCertain) and
|
||||
type = getLanguageType(address) and
|
||||
upper = countIndirectionsForCppType(type) and
|
||||
ind = ind0 + [lower .. upper] and
|
||||
indirectionIndex = ind - (ind0 + lower) and
|
||||
lower = getMinIndirectionsForType(any(Type t | type.hasUnspecifiedType(t, _)))
|
||||
|
|
||||
if writeIsCertain.isCertain(addressIsCertain) then certain = true else certain = false
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,9 @@ private class Fopen extends Function, AliasFunction, SideEffectFunction, TaintFu
|
||||
Fopen() {
|
||||
this.hasGlobalOrStdName(["fopen", "fopen_s", "freopen"])
|
||||
or
|
||||
this.hasGlobalName(["_open", "_wfopen", "_fsopen", "_wfsopen", "_wopen"])
|
||||
this.hasGlobalName([
|
||||
"_open", "_wfopen", "_fsopen", "_wfsopen", "_wopen", "_sopen_s", "_wsopen_s"
|
||||
])
|
||||
}
|
||||
|
||||
override predicate hasOnlySpecificWriteSideEffects() { any() }
|
||||
@@ -46,6 +48,10 @@ private class Fopen extends Function, AliasFunction, SideEffectFunction, TaintFu
|
||||
this.hasGlobalName(["_open", "_wopen"]) and
|
||||
i = 0 and
|
||||
buffer = true
|
||||
or
|
||||
this.hasGlobalName(["_sopen_s", "_wsopen_s"]) and
|
||||
i = 1 and
|
||||
buffer = true
|
||||
}
|
||||
|
||||
override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) {
|
||||
@@ -64,5 +70,9 @@ private class Fopen extends Function, AliasFunction, SideEffectFunction, TaintFu
|
||||
this.hasGlobalName(["_open", "_wopen"]) and
|
||||
input.isParameterDeref(0) and
|
||||
output.isReturnValue()
|
||||
or
|
||||
this.hasGlobalName(["_sopen_s", "_wsopen_s"]) and
|
||||
input.isParameterDeref(1) and
|
||||
output.isParameterDeref(0)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,6 +87,10 @@ private class FscanfModel extends ScanfFunctionModel, RemoteFlowSourceFunction i
|
||||
output.isParameterDeref(any(int i | i >= this.getArgsStartPosition())) and
|
||||
description = "value read by " + this.getName()
|
||||
}
|
||||
|
||||
override predicate hasSocketInput(FunctionInput input) {
|
||||
input.isParameterDeref(super.getInputParameterIndex())
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -960,6 +960,22 @@ variable_template_argument_value(
|
||||
int arg_value: @expr ref
|
||||
);
|
||||
|
||||
is_alias_template(unique int id: @usertype ref);
|
||||
alias_instantiation(
|
||||
unique int to: @usertype ref,
|
||||
int from: @usertype ref
|
||||
);
|
||||
alias_template_argument(
|
||||
int variable_id: @usertype ref,
|
||||
int index: int ref,
|
||||
int arg_type: @type ref
|
||||
);
|
||||
alias_template_argument_value(
|
||||
int variable_id: @usertype ref,
|
||||
int index: int ref,
|
||||
int arg_value: @expr ref
|
||||
);
|
||||
|
||||
template_template_instantiation(
|
||||
int to: @usertype ref,
|
||||
int from: @usertype ref
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
description: Support alias templates
|
||||
compatibility: backwards
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* The 'Cleartext transmission of sensitive information' query (`cpp/cleartext-transmission`) no longer raises an alert on calls to `fscanf` (and variants) when the call reads from an "obviously local" `FILE` stream such as `stdin`.
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/cpp-queries
|
||||
version: 1.6.2
|
||||
version: 1.6.3-dev
|
||||
groups:
|
||||
- cpp
|
||||
- queries
|
||||
|
||||
@@ -21,11 +21,7 @@ edges
|
||||
| test.cpp:85:21:85:36 | buf | test.cpp:87:5:87:31 | access to array | provenance | Config |
|
||||
| test.cpp:85:21:85:36 | buf | test.cpp:88:5:88:27 | access to array | provenance | Config |
|
||||
| test.cpp:85:34:85:36 | buf | test.cpp:85:21:85:36 | buf | provenance | |
|
||||
| test.cpp:92:9:92:11 | definition of arr | test.cpp:96:13:96:18 | access to array | provenance | Config |
|
||||
| test.cpp:96:13:96:15 | arr | test.cpp:96:13:96:18 | access to array | provenance | Config |
|
||||
| test.cpp:102:9:102:11 | definition of arr | test.cpp:111:17:111:22 | access to array | provenance | Config |
|
||||
| test.cpp:102:9:102:11 | definition of arr | test.cpp:115:35:115:40 | access to array | provenance | Config |
|
||||
| test.cpp:102:9:102:11 | definition of arr | test.cpp:119:17:119:22 | access to array | provenance | Config |
|
||||
| test.cpp:111:17:111:19 | arr | test.cpp:111:17:111:22 | access to array | provenance | Config |
|
||||
| test.cpp:111:17:111:19 | arr | test.cpp:115:35:115:40 | access to array | provenance | Config |
|
||||
| test.cpp:111:17:111:19 | arr | test.cpp:119:17:119:22 | access to array | provenance | Config |
|
||||
@@ -35,55 +31,41 @@ edges
|
||||
| test.cpp:119:17:119:19 | arr | test.cpp:111:17:111:22 | access to array | provenance | Config |
|
||||
| test.cpp:119:17:119:19 | arr | test.cpp:115:35:115:40 | access to array | provenance | Config |
|
||||
| test.cpp:119:17:119:19 | arr | test.cpp:119:17:119:22 | access to array | provenance | Config |
|
||||
| test.cpp:125:11:125:13 | definition of arr | test.cpp:128:9:128:14 | access to array | provenance | Config |
|
||||
| test.cpp:128:9:128:11 | arr | test.cpp:128:9:128:14 | access to array | provenance | Config |
|
||||
| test.cpp:134:25:134:27 | arr | test.cpp:136:9:136:16 | ... += ... | provenance | Config |
|
||||
| test.cpp:136:9:136:16 | ... += ... | test.cpp:136:9:136:16 | ... += ... | provenance | |
|
||||
| test.cpp:136:9:136:16 | ... += ... | test.cpp:138:13:138:15 | arr | provenance | |
|
||||
| test.cpp:142:10:142:13 | definition of asdf | test.cpp:143:18:143:21 | asdf | provenance | |
|
||||
| test.cpp:143:18:143:21 | asdf | test.cpp:134:25:134:27 | arr | provenance | |
|
||||
| test.cpp:143:18:143:21 | asdf | test.cpp:143:18:143:21 | asdf | provenance | |
|
||||
| test.cpp:146:26:146:26 | *p | test.cpp:147:4:147:9 | -- ... | provenance | |
|
||||
| test.cpp:146:26:146:26 | *p | test.cpp:147:4:147:9 | -- ... | provenance | |
|
||||
| test.cpp:154:7:154:9 | definition of buf | test.cpp:156:12:156:18 | ... + ... | provenance | Config |
|
||||
| test.cpp:156:12:156:14 | buf | test.cpp:156:12:156:18 | ... + ... | provenance | Config |
|
||||
| test.cpp:156:12:156:18 | ... + ... | test.cpp:156:12:156:18 | ... + ... | provenance | |
|
||||
| test.cpp:156:12:156:18 | ... + ... | test.cpp:158:17:158:18 | *& ... | provenance | |
|
||||
| test.cpp:158:17:158:18 | *& ... | test.cpp:146:26:146:26 | *p | provenance | |
|
||||
| test.cpp:217:19:217:24 | definition of buffer | test.cpp:218:16:218:28 | buffer | provenance | |
|
||||
| test.cpp:218:16:218:28 | buffer | test.cpp:220:5:220:11 | access to array | provenance | Config |
|
||||
| test.cpp:218:16:218:28 | buffer | test.cpp:221:5:221:11 | access to array | provenance | Config |
|
||||
| test.cpp:218:23:218:28 | buffer | test.cpp:218:16:218:28 | buffer | provenance | |
|
||||
| test.cpp:228:10:228:14 | definition of array | test.cpp:229:17:229:29 | array | provenance | |
|
||||
| test.cpp:229:17:229:29 | array | test.cpp:231:5:231:10 | access to array | provenance | Config |
|
||||
| test.cpp:229:17:229:29 | array | test.cpp:232:5:232:10 | access to array | provenance | Config |
|
||||
| test.cpp:229:25:229:29 | array | test.cpp:229:17:229:29 | array | provenance | |
|
||||
| test.cpp:245:30:245:30 | p | test.cpp:261:27:261:30 | access to array | provenance | Config |
|
||||
| test.cpp:245:30:245:30 | p | test.cpp:261:27:261:30 | access to array | provenance | Config |
|
||||
| test.cpp:273:19:273:25 | definition of buffer3 | test.cpp:274:14:274:20 | buffer3 | provenance | |
|
||||
| test.cpp:274:14:274:20 | buffer3 | test.cpp:245:30:245:30 | p | provenance | |
|
||||
| test.cpp:274:14:274:20 | buffer3 | test.cpp:274:14:274:20 | buffer3 | provenance | |
|
||||
| test.cpp:277:35:277:35 | p | test.cpp:278:14:278:14 | p | provenance | |
|
||||
| test.cpp:278:14:278:14 | p | test.cpp:245:30:245:30 | p | provenance | |
|
||||
| test.cpp:282:19:282:25 | definition of buffer1 | test.cpp:283:19:283:25 | buffer1 | provenance | |
|
||||
| test.cpp:283:19:283:25 | buffer1 | test.cpp:277:35:277:35 | p | provenance | |
|
||||
| test.cpp:283:19:283:25 | buffer1 | test.cpp:283:19:283:25 | buffer1 | provenance | |
|
||||
| test.cpp:285:19:285:25 | definition of buffer2 | test.cpp:286:19:286:25 | buffer2 | provenance | |
|
||||
| test.cpp:286:19:286:25 | buffer2 | test.cpp:277:35:277:35 | p | provenance | |
|
||||
| test.cpp:286:19:286:25 | buffer2 | test.cpp:286:19:286:25 | buffer2 | provenance | |
|
||||
| test.cpp:288:19:288:25 | definition of buffer3 | test.cpp:289:19:289:25 | buffer3 | provenance | |
|
||||
| test.cpp:289:19:289:25 | buffer3 | test.cpp:277:35:277:35 | p | provenance | |
|
||||
| test.cpp:289:19:289:25 | buffer3 | test.cpp:289:19:289:25 | buffer3 | provenance | |
|
||||
| test.cpp:292:25:292:27 | arr | test.cpp:299:16:299:21 | access to array | provenance | Config |
|
||||
| test.cpp:305:9:305:12 | definition of arr1 | test.cpp:306:20:306:23 | arr1 | provenance | |
|
||||
| test.cpp:306:20:306:23 | arr1 | test.cpp:292:25:292:27 | arr | provenance | |
|
||||
| test.cpp:306:20:306:23 | arr1 | test.cpp:306:20:306:23 | arr1 | provenance | |
|
||||
| test.cpp:308:9:308:12 | definition of arr2 | test.cpp:309:20:309:23 | arr2 | provenance | |
|
||||
| test.cpp:309:20:309:23 | arr2 | test.cpp:292:25:292:27 | arr | provenance | |
|
||||
| test.cpp:309:20:309:23 | arr2 | test.cpp:309:20:309:23 | arr2 | provenance | |
|
||||
| test.cpp:314:10:314:13 | definition of temp | test.cpp:319:19:319:27 | ... + ... | provenance | Config |
|
||||
| test.cpp:314:10:314:13 | definition of temp | test.cpp:322:19:322:27 | ... + ... | provenance | Config |
|
||||
| test.cpp:314:10:314:13 | definition of temp | test.cpp:324:23:324:32 | ... + ... | provenance | Config |
|
||||
| test.cpp:319:13:319:27 | ... = ... | test.cpp:325:24:325:26 | end | provenance | |
|
||||
| test.cpp:319:19:319:22 | temp | test.cpp:319:19:319:27 | ... + ... | provenance | Config |
|
||||
| test.cpp:319:19:319:22 | temp | test.cpp:324:23:324:32 | ... + ... | provenance | Config |
|
||||
@@ -133,40 +115,33 @@ nodes
|
||||
| test.cpp:85:34:85:36 | buf | semmle.label | buf |
|
||||
| test.cpp:87:5:87:31 | access to array | semmle.label | access to array |
|
||||
| test.cpp:88:5:88:27 | access to array | semmle.label | access to array |
|
||||
| test.cpp:92:9:92:11 | definition of arr | semmle.label | definition of arr |
|
||||
| test.cpp:96:13:96:15 | arr | semmle.label | arr |
|
||||
| test.cpp:96:13:96:18 | access to array | semmle.label | access to array |
|
||||
| test.cpp:102:9:102:11 | definition of arr | semmle.label | definition of arr |
|
||||
| test.cpp:111:17:111:19 | arr | semmle.label | arr |
|
||||
| test.cpp:111:17:111:22 | access to array | semmle.label | access to array |
|
||||
| test.cpp:115:35:115:37 | arr | semmle.label | arr |
|
||||
| test.cpp:115:35:115:40 | access to array | semmle.label | access to array |
|
||||
| test.cpp:119:17:119:19 | arr | semmle.label | arr |
|
||||
| test.cpp:119:17:119:22 | access to array | semmle.label | access to array |
|
||||
| test.cpp:125:11:125:13 | definition of arr | semmle.label | definition of arr |
|
||||
| test.cpp:128:9:128:11 | arr | semmle.label | arr |
|
||||
| test.cpp:128:9:128:14 | access to array | semmle.label | access to array |
|
||||
| test.cpp:134:25:134:27 | arr | semmle.label | arr |
|
||||
| test.cpp:136:9:136:16 | ... += ... | semmle.label | ... += ... |
|
||||
| test.cpp:136:9:136:16 | ... += ... | semmle.label | ... += ... |
|
||||
| test.cpp:138:13:138:15 | arr | semmle.label | arr |
|
||||
| test.cpp:142:10:142:13 | definition of asdf | semmle.label | definition of asdf |
|
||||
| test.cpp:143:18:143:21 | asdf | semmle.label | asdf |
|
||||
| test.cpp:143:18:143:21 | asdf | semmle.label | asdf |
|
||||
| test.cpp:146:26:146:26 | *p | semmle.label | *p |
|
||||
| test.cpp:147:4:147:9 | -- ... | semmle.label | -- ... |
|
||||
| test.cpp:147:4:147:9 | -- ... | semmle.label | -- ... |
|
||||
| test.cpp:154:7:154:9 | definition of buf | semmle.label | definition of buf |
|
||||
| test.cpp:156:12:156:14 | buf | semmle.label | buf |
|
||||
| test.cpp:156:12:156:18 | ... + ... | semmle.label | ... + ... |
|
||||
| test.cpp:156:12:156:18 | ... + ... | semmle.label | ... + ... |
|
||||
| test.cpp:158:17:158:18 | *& ... | semmle.label | *& ... |
|
||||
| test.cpp:217:19:217:24 | definition of buffer | semmle.label | definition of buffer |
|
||||
| test.cpp:218:16:218:28 | buffer | semmle.label | buffer |
|
||||
| test.cpp:218:23:218:28 | buffer | semmle.label | buffer |
|
||||
| test.cpp:220:5:220:11 | access to array | semmle.label | access to array |
|
||||
| test.cpp:221:5:221:11 | access to array | semmle.label | access to array |
|
||||
| test.cpp:228:10:228:14 | definition of array | semmle.label | definition of array |
|
||||
| test.cpp:229:17:229:29 | array | semmle.label | array |
|
||||
| test.cpp:229:25:229:29 | array | semmle.label | array |
|
||||
| test.cpp:231:5:231:10 | access to array | semmle.label | access to array |
|
||||
@@ -174,29 +149,22 @@ nodes
|
||||
| test.cpp:245:30:245:30 | p | semmle.label | p |
|
||||
| test.cpp:245:30:245:30 | p | semmle.label | p |
|
||||
| test.cpp:261:27:261:30 | access to array | semmle.label | access to array |
|
||||
| test.cpp:273:19:273:25 | definition of buffer3 | semmle.label | definition of buffer3 |
|
||||
| test.cpp:274:14:274:20 | buffer3 | semmle.label | buffer3 |
|
||||
| test.cpp:274:14:274:20 | buffer3 | semmle.label | buffer3 |
|
||||
| test.cpp:277:35:277:35 | p | semmle.label | p |
|
||||
| test.cpp:278:14:278:14 | p | semmle.label | p |
|
||||
| test.cpp:282:19:282:25 | definition of buffer1 | semmle.label | definition of buffer1 |
|
||||
| test.cpp:283:19:283:25 | buffer1 | semmle.label | buffer1 |
|
||||
| test.cpp:283:19:283:25 | buffer1 | semmle.label | buffer1 |
|
||||
| test.cpp:285:19:285:25 | definition of buffer2 | semmle.label | definition of buffer2 |
|
||||
| test.cpp:286:19:286:25 | buffer2 | semmle.label | buffer2 |
|
||||
| test.cpp:286:19:286:25 | buffer2 | semmle.label | buffer2 |
|
||||
| test.cpp:288:19:288:25 | definition of buffer3 | semmle.label | definition of buffer3 |
|
||||
| test.cpp:289:19:289:25 | buffer3 | semmle.label | buffer3 |
|
||||
| test.cpp:289:19:289:25 | buffer3 | semmle.label | buffer3 |
|
||||
| test.cpp:292:25:292:27 | arr | semmle.label | arr |
|
||||
| test.cpp:299:16:299:21 | access to array | semmle.label | access to array |
|
||||
| test.cpp:305:9:305:12 | definition of arr1 | semmle.label | definition of arr1 |
|
||||
| test.cpp:306:20:306:23 | arr1 | semmle.label | arr1 |
|
||||
| test.cpp:306:20:306:23 | arr1 | semmle.label | arr1 |
|
||||
| test.cpp:308:9:308:12 | definition of arr2 | semmle.label | definition of arr2 |
|
||||
| test.cpp:309:20:309:23 | arr2 | semmle.label | arr2 |
|
||||
| test.cpp:309:20:309:23 | arr2 | semmle.label | arr2 |
|
||||
| test.cpp:314:10:314:13 | definition of temp | semmle.label | definition of temp |
|
||||
| test.cpp:319:13:319:27 | ... = ... | semmle.label | ... = ... |
|
||||
| test.cpp:319:19:319:22 | temp | semmle.label | temp |
|
||||
| test.cpp:319:19:319:27 | ... + ... | semmle.label | ... + ... |
|
||||
@@ -221,25 +189,14 @@ subpaths
|
||||
| test.cpp:72:5:72:15 | PointerAdd: access to array | test.cpp:79:32:79:34 | buf | test.cpp:72:5:72:15 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:15:9:15:11 | buf | buf | test.cpp:72:5:72:19 | Store: ... = ... | write |
|
||||
| test.cpp:77:27:77:44 | PointerAdd: access to array | test.cpp:77:32:77:34 | buf | test.cpp:66:32:66:32 | p | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:15:9:15:11 | buf | buf | test.cpp:67:5:67:10 | Store: ... = ... | write |
|
||||
| test.cpp:88:5:88:27 | PointerAdd: access to array | test.cpp:85:34:85:36 | buf | test.cpp:88:5:88:27 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:15:9:15:11 | buf | buf | test.cpp:88:5:88:31 | Store: ... = ... | write |
|
||||
| test.cpp:128:9:128:14 | PointerAdd: access to array | test.cpp:125:11:125:13 | definition of arr | test.cpp:128:9:128:14 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:125:11:125:13 | arr | arr | test.cpp:128:9:128:18 | Store: ... = ... | write |
|
||||
| test.cpp:128:9:128:14 | PointerAdd: access to array | test.cpp:128:9:128:11 | arr | test.cpp:128:9:128:14 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:125:11:125:13 | arr | arr | test.cpp:128:9:128:18 | Store: ... = ... | write |
|
||||
| test.cpp:136:9:136:16 | PointerAdd: ... += ... | test.cpp:142:10:142:13 | definition of asdf | test.cpp:138:13:138:15 | arr | This pointer arithmetic may have an off-by-2 error allowing it to overrun $@ at this $@. | test.cpp:142:10:142:13 | asdf | asdf | test.cpp:138:12:138:15 | Load: * ... | read |
|
||||
| test.cpp:136:9:136:16 | PointerAdd: ... += ... | test.cpp:143:18:143:21 | asdf | test.cpp:138:13:138:15 | arr | This pointer arithmetic may have an off-by-2 error allowing it to overrun $@ at this $@. | test.cpp:142:10:142:13 | asdf | asdf | test.cpp:138:12:138:15 | Load: * ... | read |
|
||||
| test.cpp:156:12:156:18 | PointerAdd: ... + ... | test.cpp:154:7:154:9 | definition of buf | test.cpp:147:4:147:9 | -- ... | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:154:7:154:9 | buf | buf | test.cpp:147:3:147:13 | Store: ... = ... | write |
|
||||
| test.cpp:156:12:156:18 | PointerAdd: ... + ... | test.cpp:154:7:154:9 | definition of buf | test.cpp:147:4:147:9 | -- ... | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:154:7:154:9 | buf | buf | test.cpp:147:3:147:13 | Store: ... = ... | write |
|
||||
| test.cpp:156:12:156:18 | PointerAdd: ... + ... | test.cpp:156:12:156:14 | buf | test.cpp:147:4:147:9 | -- ... | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:154:7:154:9 | buf | buf | test.cpp:147:3:147:13 | Store: ... = ... | write |
|
||||
| test.cpp:156:12:156:18 | PointerAdd: ... + ... | test.cpp:156:12:156:14 | buf | test.cpp:147:4:147:9 | -- ... | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:154:7:154:9 | buf | buf | test.cpp:147:3:147:13 | Store: ... = ... | write |
|
||||
| test.cpp:221:5:221:11 | PointerAdd: access to array | test.cpp:217:19:217:24 | definition of buffer | test.cpp:221:5:221:11 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:217:19:217:24 | buffer | buffer | test.cpp:221:5:221:15 | Store: ... = ... | write |
|
||||
| test.cpp:221:5:221:11 | PointerAdd: access to array | test.cpp:218:23:218:28 | buffer | test.cpp:221:5:221:11 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:217:19:217:24 | buffer | buffer | test.cpp:221:5:221:15 | Store: ... = ... | write |
|
||||
| test.cpp:232:5:232:10 | PointerAdd: access to array | test.cpp:228:10:228:14 | definition of array | test.cpp:232:5:232:10 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:228:10:228:14 | array | array | test.cpp:232:5:232:19 | Store: ... = ... | write |
|
||||
| test.cpp:232:5:232:10 | PointerAdd: access to array | test.cpp:229:25:229:29 | array | test.cpp:232:5:232:10 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:228:10:228:14 | array | array | test.cpp:232:5:232:19 | Store: ... = ... | write |
|
||||
| test.cpp:261:27:261:30 | PointerAdd: access to array | test.cpp:285:19:285:25 | definition of buffer2 | test.cpp:261:27:261:30 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:285:19:285:25 | buffer2 | buffer2 | test.cpp:261:27:261:30 | Load: access to array | read |
|
||||
| test.cpp:261:27:261:30 | PointerAdd: access to array | test.cpp:286:19:286:25 | buffer2 | test.cpp:261:27:261:30 | access to array | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:285:19:285:25 | buffer2 | buffer2 | test.cpp:261:27:261:30 | Load: access to array | read |
|
||||
| test.cpp:299:16:299:21 | PointerAdd: access to array | test.cpp:308:9:308:12 | definition of arr2 | test.cpp:299:16:299:21 | access to array | This pointer arithmetic may have an off-by-1014 error allowing it to overrun $@ at this $@. | test.cpp:308:9:308:12 | arr2 | arr2 | test.cpp:299:16:299:21 | Load: access to array | read |
|
||||
| test.cpp:299:16:299:21 | PointerAdd: access to array | test.cpp:309:20:309:23 | arr2 | test.cpp:299:16:299:21 | access to array | This pointer arithmetic may have an off-by-1014 error allowing it to overrun $@ at this $@. | test.cpp:308:9:308:12 | arr2 | arr2 | test.cpp:299:16:299:21 | Load: access to array | read |
|
||||
| test.cpp:322:19:322:27 | PointerAdd: ... + ... | test.cpp:314:10:314:13 | definition of temp | test.cpp:325:24:325:26 | end | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:314:10:314:13 | temp | temp | test.cpp:330:13:330:24 | Store: ... = ... | write |
|
||||
| test.cpp:322:19:322:27 | PointerAdd: ... + ... | test.cpp:314:10:314:13 | definition of temp | test.cpp:325:24:325:26 | end | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:314:10:314:13 | temp | temp | test.cpp:331:13:331:24 | Store: ... = ... | write |
|
||||
| test.cpp:322:19:322:27 | PointerAdd: ... + ... | test.cpp:314:10:314:13 | definition of temp | test.cpp:325:24:325:26 | end | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:314:10:314:13 | temp | temp | test.cpp:333:13:333:24 | Store: ... = ... | write |
|
||||
| test.cpp:322:19:322:27 | PointerAdd: ... + ... | test.cpp:322:19:322:22 | temp | test.cpp:325:24:325:26 | end | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:314:10:314:13 | temp | temp | test.cpp:330:13:330:24 | Store: ... = ... | write |
|
||||
| test.cpp:322:19:322:27 | PointerAdd: ... + ... | test.cpp:322:19:322:22 | temp | test.cpp:325:24:325:26 | end | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:314:10:314:13 | temp | temp | test.cpp:331:13:331:24 | Store: ... = ... | write |
|
||||
| test.cpp:322:19:322:27 | PointerAdd: ... + ... | test.cpp:322:19:322:22 | temp | test.cpp:325:24:325:26 | end | This pointer arithmetic may have an off-by-1 error allowing it to overrun $@ at this $@. | test.cpp:314:10:314:13 | temp | temp | test.cpp:333:13:333:24 | Store: ... = ... | write |
|
||||
|
||||
82
cpp/ql/test/library-tests/dataflow/certain/test.cpp
Normal file
82
cpp/ql/test/library-tests/dataflow/certain/test.cpp
Normal file
@@ -0,0 +1,82 @@
|
||||
void use(...);
|
||||
|
||||
void test1() {
|
||||
int x = 0; // $ certain="SSA def(&x)" certain="SSA def(x)"
|
||||
use(x);
|
||||
|
||||
x = 1; // $ certain="SSA def(x)"
|
||||
use(x);
|
||||
|
||||
int* p = &x; // $ certain="SSA def(&p)" certain="SSA def(p)" certain="SSA def(*p)"
|
||||
use(p);
|
||||
|
||||
*p = 2; // $ certain="SSA def(*p)"
|
||||
use(p);
|
||||
|
||||
p = nullptr; // $ certain="SSA def(p)" certain="SSA def(*p)"
|
||||
use(p);
|
||||
|
||||
*p = 2; // $ uncertain="SSA def(*p)"
|
||||
use(p);
|
||||
}
|
||||
|
||||
void test2(bool b) { // $ certain="SSA def(&b)" certain="SSA def(b)"
|
||||
{
|
||||
int x; // $ certain="SSA def(&x)"
|
||||
if(b) {
|
||||
x = 0; // $ certain="SSA def(x)"
|
||||
} else {
|
||||
x = 1; // $ certain="SSA def(x)"
|
||||
}
|
||||
use(x); // $ certain="SSA phi(x)"
|
||||
}
|
||||
|
||||
{
|
||||
int x; // $ certain="SSA def(&x)" certain="SSA def(x)"
|
||||
if(b) {
|
||||
x = 0; // $ certain="SSA def(x)"
|
||||
} else {
|
||||
|
||||
}
|
||||
use(x); // $ certain="SSA phi(x)"
|
||||
}
|
||||
|
||||
{
|
||||
int x; // $ certain="SSA def(&x)" certain="SSA def(x)"
|
||||
int* p = &x; // $ certain="SSA def(&p)" certain="SSA def(p)" certain="SSA def(*p)"
|
||||
if(b) {
|
||||
*p = 0; // $ certain="SSA def(*p)"
|
||||
} else {
|
||||
*(p + 1) = 1; // $ uncertain="SSA def(*p)"
|
||||
}
|
||||
use(p); // $ uncertain="SSA phi(*p)"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void test3(bool b) { // $ certain="SSA def(&b)" certain="SSA def(b)"
|
||||
for(int i = 0; i < 10;) { // $ certain="SSA def(&i)" certain="SSA def(i)" certain="SSA phi(i)"
|
||||
if(b) {
|
||||
++i; // $ certain="SSA def(i)"
|
||||
}
|
||||
use(i); // $ certain="SSA phi(i)"
|
||||
}
|
||||
}
|
||||
|
||||
void test(int x, bool b1, bool b2) { // $ certain="SSA def(&x)" certain="SSA def(x)" certain="SSA def(&b1)" certain="SSA def(b1)" certain="SSA def(&b2)" certain="SSA def(b2)"
|
||||
int* p = &x; // $ certain="SSA def(&p)" certain="SSA def(p)" certain="SSA def(*p)"
|
||||
int i = 0; // $ certain="SSA def(&i)" certain="SSA def(i)"
|
||||
int j = 0; // $ certain="SSA def(&j)" certain="SSA def(j)"
|
||||
while (i < 10) { // $ certain="SSA phi(i)" certain="SSA phi(*p)"
|
||||
if (b1) {
|
||||
*p = 0; // $ certain="SSA def(*p)"
|
||||
}
|
||||
++i; // $ certain="SSA def(i)" certain="SSA phi(*p)"
|
||||
}
|
||||
while (j < 10) { // $ uncertain="SSA phi(*p)" certain="SSA phi(j)"
|
||||
if (b2) {
|
||||
*(p + j) = 0; // $ uncertain="SSA def(*p)"
|
||||
}
|
||||
++j; // $ certain="SSA def(j)" uncertain="SSA phi(*p)"
|
||||
}
|
||||
}
|
||||
22
cpp/ql/test/library-tests/dataflow/certain/test.ql
Normal file
22
cpp/ql/test/library-tests/dataflow/certain/test.ql
Normal file
@@ -0,0 +1,22 @@
|
||||
import cpp
|
||||
import utils.test.InlineExpectationsTest
|
||||
import semmle.code.cpp.dataflow.new.DataFlow::DataFlow
|
||||
|
||||
bindingset[s]
|
||||
string quote(string s) { if s.matches("% %") then result = "\"" + s + "\"" else result = s }
|
||||
|
||||
module AsDefinitionTest implements TestSig {
|
||||
string getARelevantTag() { result = ["certain", "uncertain"] }
|
||||
|
||||
predicate hasActualResult(Location location, string element, string tag, string value) {
|
||||
exists(Ssa::Definition d |
|
||||
location = d.getLocation() and
|
||||
element = d.toString() and
|
||||
value = quote(d.toString())
|
||||
|
|
||||
if d.isCertain() then tag = "certain" else tag = "uncertain"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
import MakeTest<AsDefinitionTest>
|
||||
@@ -143,6 +143,7 @@ postWithInFlow
|
||||
| test.cpp:1153:5:1153:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. |
|
||||
| test.cpp:1165:5:1165:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. |
|
||||
| test.cpp:1195:5:1195:6 | * ... [post update] | PostUpdateNode should not be the target of local flow. |
|
||||
| test.cpp:1337:5:1337:13 | access to array [post update] | PostUpdateNode should not be the target of local flow. |
|
||||
viableImplInCallContextTooLarge
|
||||
uniqueParameterNodeAtPosition
|
||||
uniqueParameterNodePosition
|
||||
|
||||
@@ -65,52 +65,52 @@
|
||||
| test.cpp:8:8:8:9 | t1 | test.cpp:9:8:9:9 | t1 |
|
||||
| test.cpp:9:8:9:9 | t1 | test.cpp:11:7:11:8 | t1 |
|
||||
| test.cpp:9:8:9:9 | t1 | test.cpp:11:7:11:8 | t1 |
|
||||
| test.cpp:10:8:10:9 | t2 | test.cpp:11:7:11:8 | [input] SSA phi read(t2) |
|
||||
| test.cpp:10:8:10:9 | t2 | test.cpp:11:7:11:8 | [input] SSA phi(*t2) |
|
||||
| test.cpp:10:8:10:9 | t2 | test.cpp:11:7:11:8 | [input] SSA phi read(&t2) |
|
||||
| test.cpp:10:8:10:9 | t2 | test.cpp:11:7:11:8 | [input] SSA phi(t2) |
|
||||
| test.cpp:10:8:10:9 | t2 | test.cpp:13:10:13:11 | t2 |
|
||||
| test.cpp:11:7:11:8 | [input] SSA phi read(t2) | test.cpp:15:8:15:9 | t2 |
|
||||
| test.cpp:11:7:11:8 | [input] SSA phi(*t2) | test.cpp:15:8:15:9 | t2 |
|
||||
| test.cpp:11:7:11:8 | [input] SSA phi read(&t2) | test.cpp:15:8:15:9 | t2 |
|
||||
| test.cpp:11:7:11:8 | [input] SSA phi(t2) | test.cpp:15:8:15:9 | t2 |
|
||||
| test.cpp:11:7:11:8 | t1 | test.cpp:21:8:21:9 | t1 |
|
||||
| test.cpp:12:5:12:10 | ... = ... | test.cpp:13:10:13:11 | t2 |
|
||||
| test.cpp:12:10:12:10 | 0 | test.cpp:12:5:12:10 | ... = ... |
|
||||
| test.cpp:13:10:13:11 | t2 | test.cpp:15:8:15:9 | t2 |
|
||||
| test.cpp:13:10:13:11 | t2 | test.cpp:15:8:15:9 | t2 |
|
||||
| test.cpp:15:8:15:9 | t2 | test.cpp:23:15:23:16 | [input] SSA phi read(*t2) |
|
||||
| test.cpp:15:8:15:9 | t2 | test.cpp:23:15:23:16 | [input] SSA phi read(&t2) |
|
||||
| test.cpp:15:8:15:9 | t2 | test.cpp:23:15:23:16 | [input] SSA phi read(t2) |
|
||||
| test.cpp:17:3:17:8 | ... = ... | test.cpp:21:8:21:9 | t1 |
|
||||
| test.cpp:17:8:17:8 | 0 | test.cpp:17:3:17:8 | ... = ... |
|
||||
| test.cpp:21:8:21:9 | t1 | test.cpp:23:19:23:19 | SSA phi read(t1) |
|
||||
| test.cpp:21:8:21:9 | t1 | test.cpp:23:19:23:19 | SSA phi(*t1) |
|
||||
| test.cpp:21:8:21:9 | t1 | test.cpp:23:19:23:19 | SSA phi read(&t1) |
|
||||
| test.cpp:21:8:21:9 | t1 | test.cpp:23:19:23:19 | SSA phi(t1) |
|
||||
| test.cpp:23:15:23:16 | 0 | test.cpp:23:15:23:16 | 0 |
|
||||
| test.cpp:23:15:23:16 | 0 | test.cpp:23:19:23:19 | SSA phi(*i) |
|
||||
| test.cpp:23:15:23:16 | [input] SSA phi read(*t2) | test.cpp:23:19:23:19 | SSA phi read(*t2) |
|
||||
| test.cpp:23:15:23:16 | 0 | test.cpp:23:19:23:19 | SSA phi(i) |
|
||||
| test.cpp:23:15:23:16 | [input] SSA phi read(&t2) | test.cpp:23:19:23:19 | SSA phi read(&t2) |
|
||||
| test.cpp:23:15:23:16 | [input] SSA phi read(t2) | test.cpp:23:19:23:19 | SSA phi read(t2) |
|
||||
| test.cpp:23:19:23:19 | SSA phi read(*t2) | test.cpp:24:10:24:11 | t2 |
|
||||
| test.cpp:23:19:23:19 | SSA phi read(i) | test.cpp:23:19:23:19 | i |
|
||||
| test.cpp:23:19:23:19 | SSA phi read(t1) | test.cpp:23:23:23:24 | t1 |
|
||||
| test.cpp:23:19:23:19 | SSA phi read(&i) | test.cpp:23:19:23:19 | i |
|
||||
| test.cpp:23:19:23:19 | SSA phi read(&t1) | test.cpp:23:23:23:24 | t1 |
|
||||
| test.cpp:23:19:23:19 | SSA phi read(&t2) | test.cpp:24:10:24:11 | t2 |
|
||||
| test.cpp:23:19:23:19 | SSA phi read(t2) | test.cpp:24:10:24:11 | t2 |
|
||||
| test.cpp:23:19:23:19 | SSA phi(*i) | test.cpp:23:19:23:19 | i |
|
||||
| test.cpp:23:19:23:19 | SSA phi(*t1) | test.cpp:23:23:23:24 | t1 |
|
||||
| test.cpp:23:19:23:19 | SSA phi(i) | test.cpp:23:19:23:19 | i |
|
||||
| test.cpp:23:19:23:19 | SSA phi(t1) | test.cpp:23:23:23:24 | t1 |
|
||||
| test.cpp:23:19:23:19 | i | test.cpp:23:27:23:27 | i |
|
||||
| test.cpp:23:19:23:19 | i | test.cpp:23:27:23:27 | i |
|
||||
| test.cpp:23:23:23:24 | t1 | test.cpp:23:27:23:29 | [input] SSA phi read(t1) |
|
||||
| test.cpp:23:23:23:24 | t1 | test.cpp:23:27:23:29 | [input] SSA phi read(&t1) |
|
||||
| test.cpp:23:23:23:24 | t1 | test.cpp:26:8:26:9 | t1 |
|
||||
| test.cpp:23:23:23:24 | t1 | test.cpp:26:8:26:9 | t1 |
|
||||
| test.cpp:23:27:23:27 | *i | test.cpp:23:27:23:27 | *i |
|
||||
| test.cpp:23:27:23:27 | *i | test.cpp:23:27:23:27 | i |
|
||||
| test.cpp:23:27:23:27 | i | test.cpp:23:27:23:27 | i |
|
||||
| test.cpp:23:27:23:27 | i | test.cpp:23:27:23:27 | i |
|
||||
| test.cpp:23:27:23:27 | i | test.cpp:23:27:23:29 | [input] SSA phi read(i) |
|
||||
| test.cpp:23:27:23:27 | i | test.cpp:23:27:23:29 | [input] SSA phi read(&i) |
|
||||
| test.cpp:23:27:23:29 | ... ++ | test.cpp:23:27:23:29 | ... ++ |
|
||||
| test.cpp:23:27:23:29 | ... ++ | test.cpp:23:27:23:29 | [input] SSA phi(*i) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi read(*t2) | test.cpp:23:19:23:19 | SSA phi read(*t2) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi read(i) | test.cpp:23:19:23:19 | SSA phi read(i) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi read(t1) | test.cpp:23:19:23:19 | SSA phi read(t1) |
|
||||
| test.cpp:23:27:23:29 | ... ++ | test.cpp:23:27:23:29 | [input] SSA phi(i) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi read(&i) | test.cpp:23:19:23:19 | SSA phi read(&i) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi read(&t1) | test.cpp:23:19:23:19 | SSA phi read(&t1) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi read(&t2) | test.cpp:23:19:23:19 | SSA phi read(&t2) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi read(t2) | test.cpp:23:19:23:19 | SSA phi read(t2) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi(*i) | test.cpp:23:19:23:19 | SSA phi(*i) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi(*t1) | test.cpp:23:19:23:19 | SSA phi(*t1) |
|
||||
| test.cpp:24:5:24:11 | ... = ... | test.cpp:23:27:23:29 | [input] SSA phi(*t1) |
|
||||
| test.cpp:24:10:24:11 | t2 | test.cpp:23:27:23:29 | [input] SSA phi read(*t2) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi(i) | test.cpp:23:19:23:19 | SSA phi(i) |
|
||||
| test.cpp:23:27:23:29 | [input] SSA phi(t1) | test.cpp:23:19:23:19 | SSA phi(t1) |
|
||||
| test.cpp:24:5:24:11 | ... = ... | test.cpp:23:27:23:29 | [input] SSA phi(t1) |
|
||||
| test.cpp:24:10:24:11 | t2 | test.cpp:23:27:23:29 | [input] SSA phi read(&t2) |
|
||||
| test.cpp:24:10:24:11 | t2 | test.cpp:23:27:23:29 | [input] SSA phi read(t2) |
|
||||
| test.cpp:24:10:24:11 | t2 | test.cpp:24:5:24:11 | ... = ... |
|
||||
| test.cpp:382:48:382:54 | source1 | test.cpp:384:16:384:23 | *& ... |
|
||||
|
||||
@@ -171,6 +171,7 @@ astFlow
|
||||
| test.cpp:1312:7:1312:12 | call to source | test.cpp:1313:8:1313:24 | ... ? ... : ... |
|
||||
| test.cpp:1312:7:1312:12 | call to source | test.cpp:1314:8:1314:8 | x |
|
||||
| test.cpp:1329:11:1329:16 | call to source | test.cpp:1330:10:1330:10 | i |
|
||||
| test.cpp:1335:10:1335:15 | buffer | test.cpp:1336:10:1336:18 | access to array |
|
||||
| true_upon_entry.cpp:17:11:17:16 | call to source | true_upon_entry.cpp:21:8:21:8 | x |
|
||||
| true_upon_entry.cpp:27:9:27:14 | call to source | true_upon_entry.cpp:29:8:29:8 | x |
|
||||
| true_upon_entry.cpp:33:11:33:16 | call to source | true_upon_entry.cpp:39:8:39:8 | x |
|
||||
|
||||
@@ -1329,3 +1329,11 @@ void nsdmi_test() {
|
||||
nsdmi y(source());
|
||||
sink(y.i); // $ ir ast
|
||||
}
|
||||
|
||||
void certain_def_uninitialized_instruction_test() {
|
||||
for(int i = 0; i < 10; i++) {
|
||||
char buffer[10];
|
||||
sink(buffer[0]); // $ SPURIOUS: ast
|
||||
buffer[0] = source();
|
||||
}
|
||||
}
|
||||
@@ -59,3 +59,5 @@
|
||||
| test.cpp:1137:7:1137:10 | data | test.cpp:1138:5:1138:8 | data |
|
||||
| test.cpp:1137:7:1137:10 | data | test.cpp:1139:4:1139:7 | data |
|
||||
| test.cpp:1137:7:1137:10 | data | test.cpp:1140:10:1140:13 | data |
|
||||
| test.cpp:1335:10:1335:15 | buffer | test.cpp:1336:10:1336:15 | buffer |
|
||||
| test.cpp:1335:10:1335:15 | buffer | test.cpp:1337:5:1337:10 | buffer |
|
||||
|
||||
@@ -4928,6 +4928,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future
|
||||
| stl.h:95:69:95:69 | x | stl.h:96:42:96:42 | x | |
|
||||
| stl.h:96:42:96:42 | ref arg x | stl.h:95:69:95:69 | x | |
|
||||
| stl.h:96:42:96:42 | ref arg x | stl.h:95:69:95:69 | x | |
|
||||
| stl.h:292:30:292:40 | 0 | file://:0:0:0:0 | noexcept(...) | TAINT |
|
||||
| stl.h:292:30:292:40 | 0 | file://:0:0:0:0 | noexcept(...) | TAINT |
|
||||
| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT |
|
||||
| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT |
|
||||
| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,9 @@
|
||||
| file://:0:0:0:0 | X | NestedTypedefType | file://:0:0:0:0 | int * |
|
||||
| file://:0:0:0:0 | X | UsingAliasTypedefType | file://:0:0:0:0 | int * |
|
||||
| file://:0:0:0:0 | X | TypeAliasType | file://:0:0:0:0 | int * |
|
||||
| using-alias.cpp:2:13:2:17 | type1 | CTypedefType | file://:0:0:0:0 | int |
|
||||
| using-alias.cpp:3:7:3:12 | using1 | UsingAliasTypedefType | file://:0:0:0:0 | float |
|
||||
| using-alias.cpp:3:7:3:12 | using1 | TypeAliasType | file://:0:0:0:0 | float |
|
||||
| using-alias.cpp:5:16:5:20 | type2 | CTypedefType | file://:0:0:0:0 | float |
|
||||
| using-alias.cpp:6:7:6:12 | using2 | UsingAliasTypedefType | file://:0:0:0:0 | int |
|
||||
| using-alias.cpp:6:7:6:12 | using2 | TypeAliasType | file://:0:0:0:0 | int |
|
||||
| using-alias.cpp:8:39:8:39 | X | NestedTypedefType | file://:0:0:0:0 | T * |
|
||||
| using-alias.cpp:8:39:8:39 | X | UsingAliasTypedefType | file://:0:0:0:0 | T * |
|
||||
| using-alias.cpp:10:7:10:7 | Y | UsingAliasTypedefType | file://:0:0:0:0 | int * |
|
||||
| using-alias.cpp:8:39:8:39 | X | TypeAliasType | file://:0:0:0:0 | T * |
|
||||
| using-alias.cpp:10:7:10:7 | Y | TypeAliasType | file://:0:0:0:0 | int * |
|
||||
|
||||
@@ -577,3 +577,10 @@ void tests3()
|
||||
str = get_home_address();
|
||||
send(val(), str, strlen(str), val()); // BAD
|
||||
}
|
||||
|
||||
int fscanf(FILE* stream, const char* format, ... );
|
||||
|
||||
void test_scanf() {
|
||||
char password[256];
|
||||
fscanf(stdin, "%255s", password); // GOOD: this is not a remote source
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"paket": {
|
||||
"version": "10.0.0-alpha011",
|
||||
"version": "10.3.1",
|
||||
"commands": [
|
||||
"paket"
|
||||
]
|
||||
|
||||
19
csharp/.paket/Paket.Restore.targets
generated
19
csharp/.paket/Paket.Restore.targets
generated
@@ -241,8 +241,9 @@
|
||||
<OmitContent Condition="%(PaketReferencesFileLinesInfo.Splits) >= 7">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[6])</OmitContent>
|
||||
<ImportTargets Condition="%(PaketReferencesFileLinesInfo.Splits) >= 8">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[7])</ImportTargets>
|
||||
<Aliases Condition="%(PaketReferencesFileLinesInfo.Splits) >= 9">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[8])</Aliases>
|
||||
<ReferenceCondition Condition="%(PaketReferencesFileLinesInfo.Splits) >= 10">$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[9])</ReferenceCondition>
|
||||
</PaketReferencesFileLinesInfo>
|
||||
<PackageReference Condition=" '$(ManagePackageVersionsCentrally)' != 'true' Or '%(PaketReferencesFileLinesInfo.Reference)' == 'Direct' " Include="%(PaketReferencesFileLinesInfo.PackageName)">
|
||||
<PackageReference Condition=" ('$(ManagePackageVersionsCentrally)' != 'true' Or '%(PaketReferencesFileLinesInfo.Reference)' == 'Direct') AND ('%(PaketReferencesFileLinesInfo.ReferenceCondition)' == 'true' Or $(%(PaketReferencesFileLinesInfo.ReferenceCondition)) == 'true')" Include="%(PaketReferencesFileLinesInfo.PackageName)">
|
||||
<Version Condition=" '$(ManagePackageVersionsCentrally)' != 'true' ">%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
|
||||
<PrivateAssets Condition=" ('%(PaketReferencesFileLinesInfo.AllPrivateAssets)' == 'true') Or ('$(PackAsTool)' == 'true') ">All</PrivateAssets>
|
||||
<ExcludeAssets Condition=" %(PaketReferencesFileLinesInfo.CopyLocal) == 'false' or %(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'exclude'">runtime</ExcludeAssets>
|
||||
@@ -251,10 +252,8 @@
|
||||
<Aliases Condition=" %(PaketReferencesFileLinesInfo.Aliases) != ''">%(PaketReferencesFileLinesInfo.Aliases)</Aliases>
|
||||
<Publish Condition=" '$(PackAsTool)' == 'true' ">true</Publish>
|
||||
<AllowExplicitVersion>true</AllowExplicitVersion>
|
||||
|
||||
</PackageReference>
|
||||
|
||||
<PackageVersion Include="%(PaketReferencesFileLinesInfo.PackageName)">
|
||||
<PackageVersion Condition="('$(ManagePackageVersionsCentrally)' != 'true' Or '%(PaketReferencesFileLinesInfo.Reference)' == 'Direct') AND ('%(PaketReferencesFileLinesInfo.ReferenceCondition)' == 'true' Or $(%(PaketReferencesFileLinesInfo.ReferenceCondition)) == 'true')" Include="%(PaketReferencesFileLinesInfo.PackageName)">
|
||||
<Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
|
||||
</PackageVersion>
|
||||
</ItemGroup>
|
||||
@@ -319,7 +318,17 @@
|
||||
</ItemGroup>
|
||||
|
||||
<Error Text="Error Because of PAKET_ERROR_ON_MSBUILD_EXEC (not calling fix-nuspecs)" Condition=" '$(PAKET_ERROR_ON_MSBUILD_EXEC)' == 'true' " />
|
||||
<Exec Condition="@(_NuspecFiles) != ''" Command='$(PaketCommand) fix-nuspecs files "@(_NuspecFiles)" project-file "$(PaketProjectFile)" ' />
|
||||
<Exec Condition="@(_NuspecFiles) != ''" Command='$(PaketCommand) show-conditions -s' ConsoleToMSBuild="true" StandardOutputImportance="low">
|
||||
<Output TaskParameter="ConsoleOutput" ItemName="_ConditionProperties"/>
|
||||
</Exec>
|
||||
<ItemGroup>
|
||||
<_DefinedConditionProperties Include="@(_ConditionProperties)" Condition="$(%(Identity)) == 'true'"/>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<_ConditionsParameter></_ConditionsParameter>
|
||||
<_ConditionsParameter Condition="@(_DefinedConditionProperties) != ''">--conditions @(_DefinedConditionProperties)</_ConditionsParameter>
|
||||
</PropertyGroup>
|
||||
<Exec Condition="@(_NuspecFiles) != ''" Command='$(PaketCommand) fix-nuspecs files "@(_NuspecFiles)" project-file "$(PaketProjectFile)" $(_ConditionsParameter)' />
|
||||
<Error Condition="@(_NuspecFiles) == ''" Text='Could not find nuspec files in "$(AdjustedNuspecOutputPath)" (Version: "$(PackageVersion)"), therefore we cannot call "paket fix-nuspecs" and have to error out!' />
|
||||
|
||||
<ConvertToAbsolutePath Condition="@(_NuspecFiles) != ''" Paths="@(_NuspecFiles)">
|
||||
|
||||
@@ -52,6 +52,13 @@ namespace Semmle.Extraction.CSharp.Util
|
||||
{ "op_False", "false" }
|
||||
});
|
||||
|
||||
/// <summary>
|
||||
/// The operatorname for user-defined instance increment- and decrement operators are "op_IncrementAssignment" and
|
||||
/// "op_DecrementAssignment" respectively.
|
||||
/// Thus we need to handle this explicitly to avoid postfixing them with an "=".
|
||||
/// </summary>
|
||||
private static bool IsIncrementOrDecrement(string operatorName) => operatorName == "++" || operatorName == "--";
|
||||
|
||||
/// <summary>
|
||||
/// Convert an operator method name in to a symbolic name.
|
||||
/// A return value indicates whether the conversion succeeded.
|
||||
@@ -72,7 +79,7 @@ namespace Semmle.Extraction.CSharp.Util
|
||||
if (match.Success && methodToOperator.TryGetValue($"op_{match.Groups[2]}", out var rawOperatorName))
|
||||
{
|
||||
var prefix = match.Groups[1].Success ? "checked " : "";
|
||||
var postfix = match.Groups[3].Success ? "=" : "";
|
||||
var postfix = match.Groups[3].Success && !IsIncrementOrDecrement(rawOperatorName) ? "=" : "";
|
||||
operatorName = $"{prefix}{rawOperatorName}{postfix}";
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -234,9 +234,9 @@ namespace Semmle.Extraction.CSharp.Entities
|
||||
/// </summary>
|
||||
/// <param name="node">The expression syntax node.</param>
|
||||
/// <returns>Returns the target method symbol, or null if it cannot be resolved.</returns>
|
||||
protected IMethodSymbol? GetTargetSymbol(ExpressionSyntax node)
|
||||
protected static IMethodSymbol? GetTargetSymbol(Context cx, ExpressionSyntax node)
|
||||
{
|
||||
var si = Context.GetSymbolInfo(node);
|
||||
var si = cx.GetSymbolInfo(node);
|
||||
if (si.Symbol is ISymbol symbol)
|
||||
{
|
||||
var method = symbol as IMethodSymbol;
|
||||
@@ -255,7 +255,7 @@ namespace Semmle.Extraction.CSharp.Entities
|
||||
.Where(method => method.Parameters.Length >= syntax.ArgumentList.Arguments.Count)
|
||||
.Where(method => method.Parameters.Count(p => !p.HasExplicitDefaultValue) <= syntax.ArgumentList.Arguments.Count);
|
||||
|
||||
return Context.ExtractionContext.IsStandalone ?
|
||||
return cx.ExtractionContext.IsStandalone ?
|
||||
candidates.FirstOrDefault() :
|
||||
candidates.SingleOrDefault();
|
||||
}
|
||||
@@ -281,7 +281,7 @@ namespace Semmle.Extraction.CSharp.Entities
|
||||
/// <param name="node">The expression.</param>
|
||||
public void AddOperatorCall(TextWriter trapFile, ExpressionSyntax node)
|
||||
{
|
||||
var @operator = GetTargetSymbol(node);
|
||||
var @operator = GetTargetSymbol(Context, node);
|
||||
if (@operator is IMethodSymbol method)
|
||||
{
|
||||
var callType = GetCallType(Context, node);
|
||||
@@ -312,9 +312,9 @@ namespace Semmle.Extraction.CSharp.Entities
|
||||
/// <returns>The call type.</returns>
|
||||
public static CallType GetCallType(Context cx, ExpressionSyntax node)
|
||||
{
|
||||
var @operator = cx.GetSymbolInfo(node);
|
||||
var @operator = GetTargetSymbol(cx, node);
|
||||
|
||||
if (@operator.Symbol is IMethodSymbol method)
|
||||
if (@operator is IMethodSymbol method)
|
||||
{
|
||||
if (method.ContainingSymbol is ITypeSymbol containingSymbol && containingSymbol.TypeKind == Microsoft.CodeAnalysis.TypeKind.Dynamic)
|
||||
{
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
|
||||
|
||||
var child = -1;
|
||||
string? memberName = null;
|
||||
var target = GetTargetSymbol(Syntax);
|
||||
var target = GetTargetSymbol(Context, Syntax);
|
||||
switch (Syntax.Expression)
|
||||
{
|
||||
case MemberAccessExpressionSyntax memberAccess when IsValidMemberAccessKind():
|
||||
|
||||
101
csharp/paket.lock
generated
101
csharp/paket.lock
generated
@@ -13,15 +13,15 @@ NUGET
|
||||
MSBuild.StructuredLogger (>= 2.3.71)
|
||||
NaturalSort.Extension (>= 4.4)
|
||||
NuGet.Versioning (>= 6.14)
|
||||
Humanizer.Core (3.0.1)
|
||||
Humanizer.Core (3.0.10)
|
||||
MessagePack (3.1.4)
|
||||
MessagePack.Annotations (>= 3.1.4)
|
||||
MessagePackAnalyzer (>= 3.1.4)
|
||||
Microsoft.NET.StringTools (>= 17.11.4)
|
||||
MessagePack.Annotations (3.1.4)
|
||||
MessagePackAnalyzer (3.1.4)
|
||||
Microsoft.Bcl.AsyncInterfaces (10.0.1)
|
||||
Microsoft.Bcl.Memory (10.0.1)
|
||||
Microsoft.Bcl.AsyncInterfaces (10.0.8)
|
||||
Microsoft.Bcl.Memory (10.0.8)
|
||||
Microsoft.Build (18.0.2)
|
||||
Microsoft.Build.Framework (>= 18.0.2)
|
||||
Microsoft.NET.StringTools (>= 18.0.2)
|
||||
@@ -29,13 +29,13 @@ NUGET
|
||||
System.Diagnostics.EventLog (>= 9.0)
|
||||
System.Reflection.MetadataLoadContext (>= 9.0)
|
||||
System.Security.Cryptography.ProtectedData (>= 9.0.6)
|
||||
Microsoft.Build.Framework (18.0.2)
|
||||
Microsoft.Build.Utilities.Core (18.0.2)
|
||||
Microsoft.Build.Framework (>= 18.0.2)
|
||||
Microsoft.NET.StringTools (>= 18.0.2)
|
||||
System.Configuration.ConfigurationManager (>= 9.0)
|
||||
System.Diagnostics.EventLog (>= 9.0)
|
||||
System.Security.Cryptography.ProtectedData (>= 9.0.6)
|
||||
Microsoft.Build.Framework (18.4)
|
||||
Microsoft.Build.Utilities.Core (18.4)
|
||||
Microsoft.Build.Framework (>= 18.4)
|
||||
Microsoft.NET.StringTools (>= 18.4)
|
||||
System.Configuration.ConfigurationManager (>= 10.0.1)
|
||||
System.Diagnostics.EventLog (>= 10.0.1)
|
||||
System.Security.Cryptography.ProtectedData (>= 10.0.1)
|
||||
Microsoft.CodeAnalysis (5.0)
|
||||
Humanizer.Core (>= 2.14.1)
|
||||
Microsoft.Bcl.AsyncInterfaces (>= 9.0)
|
||||
@@ -53,7 +53,7 @@ NUGET
|
||||
System.Text.Encoding.CodePages (>= 8.0)
|
||||
System.Threading.Channels (>= 8.0)
|
||||
System.Threading.Tasks.Extensions (>= 4.6)
|
||||
Microsoft.CodeAnalysis.Analyzers (3.11)
|
||||
Microsoft.CodeAnalysis.Analyzers (5.3)
|
||||
Microsoft.CodeAnalysis.Common (5.0)
|
||||
Microsoft.CodeAnalysis.Analyzers (>= 3.11)
|
||||
Microsoft.CodeAnalysis.CSharp (5.0)
|
||||
@@ -81,64 +81,63 @@ NUGET
|
||||
Microsoft.CodeAnalysis.Analyzers (>= 3.11)
|
||||
Microsoft.CodeAnalysis.Common (5.0)
|
||||
System.Composition (>= 9.0)
|
||||
Microsoft.CodeCoverage (18.0.1)
|
||||
Microsoft.Extensions.ObjectPool (10.0.1)
|
||||
Microsoft.NET.StringTools (18.0.2)
|
||||
Microsoft.NET.Test.Sdk (18.0.1)
|
||||
Microsoft.CodeCoverage (>= 18.0.1)
|
||||
Microsoft.TestPlatform.TestHost (>= 18.0.1)
|
||||
Microsoft.TestPlatform.ObjectModel (18.0.1)
|
||||
Microsoft.CodeCoverage (18.5.1)
|
||||
Microsoft.Extensions.ObjectPool (10.0.8)
|
||||
Microsoft.NET.StringTools (18.4)
|
||||
Microsoft.NET.Test.Sdk (18.5.1)
|
||||
Microsoft.CodeCoverage (>= 18.5.1)
|
||||
Microsoft.TestPlatform.TestHost (>= 18.5.1)
|
||||
Microsoft.TestPlatform.ObjectModel (18.5.1)
|
||||
System.Reflection.Metadata (>= 8.0)
|
||||
Microsoft.TestPlatform.TestHost (18.0.1)
|
||||
Microsoft.TestPlatform.ObjectModel (>= 18.0.1)
|
||||
Microsoft.TestPlatform.TestHost (18.5.1)
|
||||
Microsoft.TestPlatform.ObjectModel (>= 18.5.1)
|
||||
Newtonsoft.Json (>= 13.0.3)
|
||||
Microsoft.VisualStudio.SolutionPersistence (1.0.52)
|
||||
Mono.Posix.NETStandard (1.0)
|
||||
MSBuild.StructuredLogger (2.3.113)
|
||||
MSBuild.StructuredLogger (2.3.204)
|
||||
Microsoft.Build.Framework (>= 17.5)
|
||||
Microsoft.Build.Utilities.Core (>= 17.5)
|
||||
System.Collections.Immutable (>= 8.0)
|
||||
NaturalSort.Extension (4.4.1)
|
||||
Newtonsoft.Json (13.0.4)
|
||||
NuGet.Versioning (7.0.1)
|
||||
NuGet.Versioning (7.6)
|
||||
System.Buffers (4.6.1)
|
||||
System.Collections.Immutable (10.0.1)
|
||||
System.Composition (10.0.1)
|
||||
System.Composition.AttributedModel (>= 10.0.1)
|
||||
System.Composition.Convention (>= 10.0.1)
|
||||
System.Composition.Hosting (>= 10.0.1)
|
||||
System.Composition.Runtime (>= 10.0.1)
|
||||
System.Composition.TypedParts (>= 10.0.1)
|
||||
System.Composition.AttributedModel (10.0.1)
|
||||
System.Composition.Convention (10.0.1)
|
||||
System.Composition.AttributedModel (>= 10.0.1)
|
||||
System.Composition.Hosting (10.0.1)
|
||||
System.Composition.Runtime (>= 10.0.1)
|
||||
System.Composition.Runtime (10.0.1)
|
||||
System.Composition.TypedParts (10.0.1)
|
||||
System.Composition.AttributedModel (>= 10.0.1)
|
||||
System.Composition.Hosting (>= 10.0.1)
|
||||
System.Composition.Runtime (>= 10.0.1)
|
||||
System.Configuration.ConfigurationManager (10.0.1)
|
||||
System.Diagnostics.EventLog (>= 10.0.1)
|
||||
System.Security.Cryptography.ProtectedData (>= 10.0.1)
|
||||
System.Diagnostics.EventLog (10.0.1)
|
||||
System.IO.Pipelines (10.0.1)
|
||||
System.Collections.Immutable (10.0.8)
|
||||
System.Composition (10.0.8)
|
||||
System.Composition.AttributedModel (>= 10.0.8)
|
||||
System.Composition.Convention (>= 10.0.8)
|
||||
System.Composition.Hosting (>= 10.0.8)
|
||||
System.Composition.Runtime (>= 10.0.8)
|
||||
System.Composition.TypedParts (>= 10.0.8)
|
||||
System.Composition.AttributedModel (10.0.8)
|
||||
System.Composition.Convention (10.0.8)
|
||||
System.Composition.AttributedModel (>= 10.0.8)
|
||||
System.Composition.Hosting (10.0.8)
|
||||
System.Composition.Runtime (>= 10.0.8)
|
||||
System.Composition.Runtime (10.0.8)
|
||||
System.Composition.TypedParts (10.0.8)
|
||||
System.Composition.AttributedModel (>= 10.0.8)
|
||||
System.Composition.Hosting (>= 10.0.8)
|
||||
System.Composition.Runtime (>= 10.0.8)
|
||||
System.Configuration.ConfigurationManager (10.0.8)
|
||||
System.Diagnostics.EventLog (>= 10.0.8)
|
||||
System.Security.Cryptography.ProtectedData (>= 10.0.8)
|
||||
System.Diagnostics.EventLog (10.0.8)
|
||||
System.IO.Pipelines (10.0.8)
|
||||
System.Memory (4.6.3)
|
||||
System.Numerics.Vectors (4.6.1)
|
||||
System.Reflection.Metadata (10.0.1)
|
||||
System.Reflection.MetadataLoadContext (10.0.1)
|
||||
System.Reflection.Metadata (10.0.8)
|
||||
System.Reflection.MetadataLoadContext (10.0.8)
|
||||
System.Runtime.CompilerServices.Unsafe (6.1.2)
|
||||
System.Security.Cryptography.ProtectedData (10.0.1)
|
||||
System.Text.Encoding.CodePages (10.0.1)
|
||||
System.Threading.Channels (10.0.1)
|
||||
System.Security.Cryptography.ProtectedData (10.0.8)
|
||||
System.Text.Encoding.CodePages (10.0.8)
|
||||
System.Threading.Channels (10.0.8)
|
||||
System.Threading.Tasks.Extensions (4.6.3)
|
||||
xunit (2.9.3)
|
||||
xunit.analyzers (>= 1.18)
|
||||
xunit.assert (>= 2.9.3)
|
||||
xunit.core (2.9.3)
|
||||
xunit.abstractions (2.0.3)
|
||||
xunit.analyzers (1.26)
|
||||
xunit.analyzers (1.27)
|
||||
xunit.assert (2.9.3)
|
||||
xunit.core (2.9.3)
|
||||
xunit.extensibility.core (2.9.3)
|
||||
|
||||
60
csharp/paket.main.bzl
generated
60
csharp/paket.main.bzl
generated
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
name: codeql/csharp-solorigate-all
|
||||
version: 1.7.66
|
||||
version: 1.7.67-dev
|
||||
groups:
|
||||
- csharp
|
||||
- solorigate
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/csharp-solorigate-queries
|
||||
version: 1.7.66
|
||||
version: 1.7.67-dev
|
||||
groups:
|
||||
- csharp
|
||||
- solorigate
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: minorAnalysis
|
||||
---
|
||||
* C# 14: Added support for user-defined instance increment/decrement operators.
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/csharp-all
|
||||
version: 6.0.0
|
||||
version: 6.0.1-dev
|
||||
groups: csharp
|
||||
dbscheme: semmlecode.csharp.dbscheme
|
||||
extractor: csharp
|
||||
|
||||
@@ -613,6 +613,9 @@ class UnaryOperator extends Operator {
|
||||
this.getNumberOfParameters() = 1 and
|
||||
not this instanceof ConversionOperator and
|
||||
not this instanceof CompoundAssignmentOperator
|
||||
or
|
||||
// Instance increment and decrement operators don't have a parameter (only a qualifier).
|
||||
this.getNumberOfParameters() = 0 and not this.isStatic()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -85,12 +85,12 @@ private module GuardsInput implements SharedGuards::InputSig<Location, ControlFl
|
||||
|
||||
predicate matchEdge(BasicBlock bb1, BasicBlock bb2) {
|
||||
bb1.getASuccessor(any(MatchingSuccessor s | s.getValue() = true)) = bb2 and
|
||||
bb1.getLastNode() = AstNode.super.getControlFlowNode()
|
||||
bb1.getLastNode() = super.getPattern().getControlFlowNode()
|
||||
}
|
||||
|
||||
predicate nonMatchEdge(BasicBlock bb1, BasicBlock bb2) {
|
||||
bb1.getASuccessor(any(MatchingSuccessor s | s.getValue() = false)) = bb2 and
|
||||
bb1.getLastNode() = AstNode.super.getControlFlowNode()
|
||||
bb1.getLastNode() = super.getPattern().getControlFlowNode()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -175,7 +175,9 @@ module Ast implements AstSig<Location> {
|
||||
final private class FinalForStmt = CS::ForStmt;
|
||||
|
||||
class ForStmt extends FinalForStmt {
|
||||
Expr getInit(int index) { result = this.getInitializer(index) }
|
||||
AstNode getInit(int index) { result = super.getInitializer(index) }
|
||||
|
||||
AstNode getUpdate(int index) { result = super.getUpdate(index) }
|
||||
}
|
||||
|
||||
final private class FinalForeachStmt = CS::ForeachStmt;
|
||||
@@ -229,7 +231,7 @@ module Ast implements AstSig<Location> {
|
||||
final private class FinalCase = CS::Case;
|
||||
|
||||
class Case extends FinalCase {
|
||||
AstNode getAPattern() { result = this.getPattern() }
|
||||
AstNode getPattern(int index) { result = this.getPattern() and index = 0 }
|
||||
|
||||
Expr getGuard() { result = this.getCondition() }
|
||||
|
||||
|
||||
@@ -73,6 +73,19 @@ class DispatchCall extends Internal::TDispatchCall {
|
||||
}
|
||||
}
|
||||
|
||||
abstract private class InstanceOperatorCall extends OperatorCall {
|
||||
abstract Expr getQualifier();
|
||||
}
|
||||
|
||||
private class InstanceCompoundAssignment extends InstanceOperatorCall instanceof CompoundAssignmentOperatorCall
|
||||
{
|
||||
override Expr getQualifier() { result = CompoundAssignmentOperatorCall.super.getQualifier() }
|
||||
}
|
||||
|
||||
private class InstanceMutator extends InstanceOperatorCall instanceof InstanceMutatorOperatorCall {
|
||||
override Expr getQualifier() { result = InstanceMutatorOperatorCall.super.getQualifier() }
|
||||
}
|
||||
|
||||
/** Internal implementation details. */
|
||||
private module Internal {
|
||||
private import OverridableCallable
|
||||
@@ -101,9 +114,9 @@ private module Internal {
|
||||
} or
|
||||
TDispatchOperatorCall(OperatorCall oc) {
|
||||
not oc.isLateBound() and
|
||||
not oc instanceof CompoundAssignmentOperatorCall
|
||||
not oc instanceof InstanceOperatorCall
|
||||
} or
|
||||
TDispatchCompoundAssignmentOperatorCall(CompoundAssignmentOperatorCall caoc) or
|
||||
TDispatchInstanceOperatorCall(InstanceOperatorCall ioc) or
|
||||
TDispatchReflectionCall(MethodCall mc, string name, Expr object, Expr qualifier, int args) {
|
||||
isReflectionCall(mc, name, object, qualifier, args)
|
||||
} or
|
||||
@@ -890,12 +903,10 @@ private module Internal {
|
||||
override Operator getAStaticTarget() { result = this.getCall().getTarget() }
|
||||
}
|
||||
|
||||
private class DispatchCompoundAssignmentOperatorCall extends DispatchOverridableCall,
|
||||
TDispatchCompoundAssignmentOperatorCall
|
||||
private class DispatchInstanceOperatorCall extends DispatchOverridableCall,
|
||||
TDispatchInstanceOperatorCall
|
||||
{
|
||||
override CompoundAssignmentOperatorCall getCall() {
|
||||
this = TDispatchCompoundAssignmentOperatorCall(result)
|
||||
}
|
||||
override InstanceOperatorCall getCall() { this = TDispatchInstanceOperatorCall(result) }
|
||||
|
||||
override Expr getArgument(int i) { result = this.getCall().getArgument(i) }
|
||||
|
||||
|
||||
@@ -570,6 +570,29 @@ class MutatorOperatorCall extends OperatorCall {
|
||||
predicate isPostfix() { mutator_invocation_mode(this, 2) }
|
||||
}
|
||||
|
||||
/**
|
||||
* A call to an instance mutator operator, for example `a++` on
|
||||
* line 5 in
|
||||
*
|
||||
* ```csharp
|
||||
* class A {
|
||||
* public void operator ++() { ... }
|
||||
*
|
||||
* public static void Increment(A a) {
|
||||
* a++;
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class InstanceMutatorOperatorCall extends MutatorOperatorCall {
|
||||
InstanceMutatorOperatorCall() { this.getTarget().getNumberOfParameters() = 0 }
|
||||
|
||||
/** Gets the qualifier of this instance mutator operator call. */
|
||||
Expr getQualifier() { result = this.getChildExpr(0) }
|
||||
|
||||
override Expr getArgument(int i) { none() }
|
||||
}
|
||||
|
||||
/**
|
||||
* A call to a compound assignment operator, for example `this += other`
|
||||
* on line 7 in
|
||||
|
||||
@@ -7,6 +7,17 @@
|
||||
<p>Deserializing an object from untrusted input may result in security problems, such
|
||||
as denial of service or remote code execution.</p>
|
||||
|
||||
<p>
|
||||
Note that a deserialization method is only dangerous if it can instantiate
|
||||
arbitrary classes. Serialization frameworks that use a schema to instantiate
|
||||
only expected, predefined types are generally not tracked by this query. Such
|
||||
frameworks are generally safe with respect to arbitrary-class-instantiation and
|
||||
gadget-chain attacks when the schema is trusted and does not permit
|
||||
user-controlled type resolution. However, care must be taken to ensure the schema
|
||||
strictly limits the allowed types. Permitting common standard library classes
|
||||
can still leave the application vulnerable to gadget-chain attacks.
|
||||
</p>
|
||||
|
||||
</overview>
|
||||
<recommendation>
|
||||
|
||||
|
||||
@@ -7,6 +7,17 @@
|
||||
<p>Deserializing an object from untrusted input may result in security problems, such
|
||||
as denial of service or remote code execution.</p>
|
||||
|
||||
<p>
|
||||
Note that a deserialization method is only dangerous if it can instantiate
|
||||
arbitrary classes. Serialization frameworks that use a schema to instantiate
|
||||
only expected, predefined types are generally not tracked by this query. Such
|
||||
frameworks are generally safe with respect to arbitrary-class-instantiation and
|
||||
gadget-chain attacks when the schema is trusted and does not permit
|
||||
user-controlled type resolution. However, care must be taken to ensure the schema
|
||||
strictly limits the allowed types. Permitting common standard library classes
|
||||
can still leave the application vulnerable to gadget-chain attacks.
|
||||
</p>
|
||||
|
||||
</overview>
|
||||
<recommendation>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/csharp-queries
|
||||
version: 1.7.2
|
||||
version: 1.7.3-dev
|
||||
groups:
|
||||
- csharp
|
||||
- queries
|
||||
|
||||
@@ -912,7 +912,7 @@
|
||||
| PartialImplementationB.cs:4:12:4:18 | Entry | PartialImplementationB.cs:4:12:4:18 | Exit | 11 |
|
||||
| Patterns.cs:3:7:3:14 | Entry | Patterns.cs:3:7:3:14 | Exit | 11 |
|
||||
| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:8:13:8:23 | ... is ... | 13 |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | case ...: | 4 |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:18:22:22 | "xyz" | 5 |
|
||||
| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | ... is ... | 5 |
|
||||
| Patterns.cs:8:13:8:23 | [MatchTrue] ... is ... | Patterns.cs:9:9:11:9 | After {...} | 18 |
|
||||
| Patterns.cs:12:14:18:9 | After if (...) ... | Patterns.cs:12:14:18:9 | After if (...) ... | 1 |
|
||||
@@ -922,19 +922,19 @@
|
||||
| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | 1 |
|
||||
| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:17:9:18:9 | {...} | 4 |
|
||||
| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | Exit | 7 |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:23:17:23:22 | break; | 4 |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | case ...: | 2 |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | ... > ... | 6 |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | 1 |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [match] | Patterns.cs:23:17:23:22 | break; | 4 |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:24:18:24:23 | Int32 i2 | 4 |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [match] | Patterns.cs:24:30:24:35 | ... > ... | 6 |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | 2 |
|
||||
| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:24:30:24:35 | After ... > ... [false] | 1 |
|
||||
| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:26:17:26:22 | break; | 16 |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:29:17:29:22 | break; | 17 |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | case ...: | 2 |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | case ...: | 1 |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:32:17:32:22 | break; | 17 |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | case ...: | 2 |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:34:17:34:22 | break; | 4 |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:37:17:37:22 | break; | 11 |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | Int32 i3 | 2 |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [match] | Patterns.cs:29:17:29:22 | break; | 17 |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:30:18:30:26 | String s2 | 4 |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [match] | Patterns.cs:32:17:32:22 | break; | 17 |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [no-match] | Patterns.cs:33:18:33:23 | Object v2 | 4 |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [match] | Patterns.cs:34:17:34:22 | break; | 4 |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [no-match] | Patterns.cs:37:17:37:22 | break; | 12 |
|
||||
| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | ... is ... | 5 |
|
||||
| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | Exit | 3 |
|
||||
| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:48:14:48:20 | After not ... | 5 |
|
||||
@@ -949,24 +949,24 @@
|
||||
| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | ... is ... | 5 |
|
||||
| Patterns.cs:54:9:54:37 | After ... is ... | Patterns.cs:53:24:53:25 | Exit | 3 |
|
||||
| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:54:14:54:37 | After not ... | 13 |
|
||||
| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | ... => ... | 7 |
|
||||
| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:17 | not ... | 10 |
|
||||
| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | Exit | 4 |
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:22:60:28 | "not 1" | 6 |
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:61:18:61:24 | "other" | 5 |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | ... => ... | 6 |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [match] | Patterns.cs:60:22:60:28 | "not 1" | 3 |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [no-match] | Patterns.cs:61:18:61:24 | "other" | 7 |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:17 | not ... | 9 |
|
||||
| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:65:26:65:27 | Exit | 4 |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:22:69:33 | "impossible" | 6 |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | ... => ... | 2 |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:18:70:27 | "possible" | 3 |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | 1 |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | ... => ... | 7 |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [match] | Patterns.cs:69:22:69:33 | "impossible" | 3 |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [no-match] | Patterns.cs:70:13:70:13 | 2 | 4 |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [match] | Patterns.cs:70:18:70:27 | "possible" | 3 |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | 2 |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:15 | > ... | 10 |
|
||||
| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:74:26:74:27 | Exit | 4 |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:20:78:24 | "> 1" | 6 |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | ... => ... | 2 |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:20:79:24 | "< 0" | 6 |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | ... => ... | 2 |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:18:80:20 | "1" | 3 |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:81:18:81:20 | "0" | 5 |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [match] | Patterns.cs:78:20:78:24 | "> 1" | 3 |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:79:13:79:15 | < ... | 6 |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [match] | Patterns.cs:79:20:79:24 | "< 0" | 3 |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [no-match] | Patterns.cs:80:13:80:13 | 1 | 4 |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [match] | Patterns.cs:80:18:80:20 | "1" | 3 |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [no-match] | Patterns.cs:81:18:81:20 | "0" | 7 |
|
||||
| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | ... is ... | 6 |
|
||||
| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:67:85:69 | "2" | 2 |
|
||||
| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:57:85:63 | "not 2" | 11 |
|
||||
@@ -995,129 +995,130 @@
|
||||
| Qualifiers.cs:10:10:10:10 | Entry | Qualifiers.cs:10:10:10:10 | Exit | 149 |
|
||||
| Switch.cs:3:7:3:12 | Entry | Switch.cs:3:7:3:12 | Exit | 11 |
|
||||
| Switch.cs:5:10:5:11 | Entry | Switch.cs:5:10:5:11 | Exit | 9 |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | case ...: | 6 |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:18:14:20 | "a" | 7 |
|
||||
| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | Exceptional Exit | 1 |
|
||||
| Switch.cs:10:10:10:11 | Exit | Switch.cs:10:10:10:11 | Exit | 1 |
|
||||
| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | Normal Exit | 1 |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:15:17:15:23 | return ...; | 4 |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | case ...: | 2 |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:17:17:17:38 | throw ...; | 7 |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | case ...: | 2 |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:19:17:19:29 | goto default; | 4 |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | case ...: | 2 |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | ... == ... | 7 |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | case ...: | 2 |
|
||||
| Switch.cs:14:18:14:20 | After "a" [match] | Switch.cs:15:17:15:23 | return ...; | 4 |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:16:18:16:18 | 0 | 4 |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:17:17:17:38 | throw ...; | 6 |
|
||||
| Switch.cs:16:18:16:18 | After 0 [match] | Switch.cs:16:18:16:18 | After 0 [match] | 1 |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:18:18:18:21 | null | 4 |
|
||||
| Switch.cs:18:18:18:21 | After null [match] | Switch.cs:19:17:19:29 | goto default; | 4 |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:20:18:20:22 | Int32 i | 4 |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [match] | Switch.cs:21:21:21:29 | ... == ... | 7 |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:18:24:25 | String s | 4 |
|
||||
| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:23:17:23:28 | goto case ...; | 5 |
|
||||
| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:22:21:22:27 | return ...; | 3 |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | ... > ... | 10 |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | 1 |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:24:32:24:43 | ... > ... | 10 |
|
||||
| Switch.cs:24:18:24:25 | After String s [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | 2 |
|
||||
| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:24:32:24:43 | After ... > ... [false] | 1 |
|
||||
| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | ... != ... | 5 |
|
||||
| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:24:32:24:55 | After ... && ... [false] | 1 |
|
||||
| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:24:48:24:55 | After ... != ... [false] | 1 |
|
||||
| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:26:17:26:23 | return ...; | 10 |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:32:27:38 | call to method Throw | 4 |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:30:13:30:20 | default: | 2 |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | case ...: | 1 |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | 2 |
|
||||
| Switch.cs:27:18:27:25 | After Double d [match] | Switch.cs:27:32:27:38 | call to method Throw | 4 |
|
||||
| Switch.cs:27:18:27:25 | After Double d [no-match] | Switch.cs:30:13:30:20 | default: | 3 |
|
||||
| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:29:17:29:23 | return ...; | 6 |
|
||||
| Switch.cs:35:10:35:11 | Entry | Switch.cs:35:10:35:11 | Exit | 7 |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | case ...: | 6 |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:18:48:20 | access to type Int32 | 7 |
|
||||
| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:44:10:44:11 | Exit | 4 |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:49:17:49:22 | break; | 4 |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | case ...: | 2 |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | ... != ... | 6 |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | 1 |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [match] | Switch.cs:49:17:49:22 | break; | 4 |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:50:18:50:21 | access to type Boolean | 4 |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [match] | Switch.cs:50:30:50:38 | ... != ... | 6 |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | 2 |
|
||||
| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:50:30:50:38 | After ... != ... [false] | 1 |
|
||||
| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:51:17:51:22 | break; | 3 |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | case ...: | 9 |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:18:59:18 | 2 | 10 |
|
||||
| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:55:10:55:11 | Exit | 4 |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:60:17:60:22 | break; | 4 |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | case ...: | 2 |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:62:17:62:22 | break; | 4 |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | 1 |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | case ...: | 9 |
|
||||
| Switch.cs:59:18:59:18 | After 2 [match] | Switch.cs:60:17:60:22 | break; | 4 |
|
||||
| Switch.cs:59:18:59:18 | After 2 [no-match] | Switch.cs:61:18:61:18 | 3 | 4 |
|
||||
| Switch.cs:61:18:61:18 | After 3 [match] | Switch.cs:62:17:62:22 | break; | 4 |
|
||||
| Switch.cs:61:18:61:18 | After 3 [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | 2 |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:18:70:20 | access to type Int32 | 10 |
|
||||
| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:66:10:66:11 | Exit | 4 |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:71:17:71:22 | break; | 4 |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | case ...: | 2 |
|
||||
| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:73:17:73:22 | break; | 4 |
|
||||
| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | 1 |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | case ...: | 7 |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [match] | Switch.cs:71:17:71:22 | break; | 4 |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | Switch.cs:72:18:72:19 | "" | 4 |
|
||||
| Switch.cs:72:18:72:19 | After "" [match] | Switch.cs:73:17:73:22 | break; | 4 |
|
||||
| Switch.cs:72:18:72:19 | After "" [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | 2 |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:18:81:18 | 1 | 8 |
|
||||
| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | Exit | 2 |
|
||||
| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:88:9:88:21 | return ...; | 4 |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:82:17:82:28 | return ...; | 5 |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | case ...: | 2 |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | ... > ... | 7 |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | 1 |
|
||||
| Switch.cs:81:18:81:18 | After 1 [match] | Switch.cs:82:17:82:28 | return ...; | 5 |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:83:18:83:18 | 2 | 4 |
|
||||
| Switch.cs:83:18:83:18 | After 2 [match] | Switch.cs:84:21:84:25 | ... > ... | 7 |
|
||||
| Switch.cs:83:18:83:18 | After 2 [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | 2 |
|
||||
| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:86:17:86:28 | return ...; | 5 |
|
||||
| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:85:21:85:26 | break; | 3 |
|
||||
| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | case ...: | 6 |
|
||||
| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:18:95:20 | access to type Int32 | 7 |
|
||||
| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | Exit | 2 |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:96:17:96:28 | return ...; | 5 |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:98:9:98:21 | return ...; | 5 |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [match] | Switch.cs:96:17:96:28 | return ...; | 5 |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [no-match] | Switch.cs:98:9:98:21 | return ...; | 6 |
|
||||
| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | access to parameter s | 6 |
|
||||
| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | Exit | 2 |
|
||||
| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:103:17:103:25 | access to property Length | 2 |
|
||||
| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:103:17:103:17 | After access to parameter s [null] | 1 |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | case ...: | 2 |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:21:105:29 | return ...; | 5 |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | case ...: | 2 |
|
||||
| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:21:106:29 | return ...; | 5 |
|
||||
| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:108:9:108:18 | return ...; | 8 |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:18:105:18 | 0 | 3 |
|
||||
| Switch.cs:105:18:105:18 | After 0 [match] | Switch.cs:105:21:105:29 | return ...; | 5 |
|
||||
| Switch.cs:105:18:105:18 | After 0 [no-match] | Switch.cs:106:18:106:18 | 1 | 4 |
|
||||
| Switch.cs:106:18:106:18 | After 1 [match] | Switch.cs:106:21:106:29 | return ...; | 5 |
|
||||
| Switch.cs:106:18:106:18 | After 1 [no-match] | Switch.cs:108:9:108:18 | return ...; | 9 |
|
||||
| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:17:111:21 | Exit | 8 |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | case ...: | 9 |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:18:117:18 | 3 | 10 |
|
||||
| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | Exit | 2 |
|
||||
| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:120:9:120:18 | return ...; | 7 |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | ... == ... | 6 |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:117:13:117:35 | After case ...: [no-match] | 1 |
|
||||
| Switch.cs:117:18:117:18 | After 3 [match] | Switch.cs:117:25:117:34 | ... == ... | 6 |
|
||||
| Switch.cs:117:18:117:18 | After 3 [no-match] | Switch.cs:117:13:117:35 | After case ...: [no-match] | 2 |
|
||||
| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:117:25:117:34 | After ... == ... [false] | 1 |
|
||||
| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:117:37:117:45 | return ...; | 4 |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | ... == ... | 6 |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:118:13:118:34 | After case ...: [no-match] | 1 |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | case ...: | 1 |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | 2 | 2 |
|
||||
| Switch.cs:118:18:118:18 | After 2 [match] | Switch.cs:118:25:118:33 | ... == ... | 6 |
|
||||
| Switch.cs:118:18:118:18 | After 2 [no-match] | Switch.cs:118:13:118:34 | After case ...: [no-match] | 2 |
|
||||
| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:118:25:118:33 | After ... == ... [false] | 1 |
|
||||
| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:118:36:118:44 | return ...; | 4 |
|
||||
| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | ... => ... | 7 |
|
||||
| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:29 | Boolean b | 8 |
|
||||
| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | Exit | 2 |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:124:5:127:5 | After {...} | 3 |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:126:13:126:19 | return ...; | 3 |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:34:125:34 | access to local variable b | 3 |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:125:42:125:46 | false | 5 |
|
||||
| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | ... => ... | 8 |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [match] | Switch.cs:125:34:125:34 | access to local variable b | 3 |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [no-match] | Switch.cs:125:42:125:46 | false | 7 |
|
||||
| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:35 | String s | 9 |
|
||||
| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:129:12:129:14 | Exit | 4 |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:131:16:131:66 | call to method ToString | 2 |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | 1 |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:40:131:40 | access to local variable s | 3 |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:131:48:131:51 | null | 5 |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | case ...: | 6 |
|
||||
| Switch.cs:131:28:131:35 | After String s [match] | Switch.cs:131:40:131:40 | access to local variable s | 3 |
|
||||
| Switch.cs:131:28:131:35 | After String s [no-match] | Switch.cs:131:48:131:51 | null | 7 |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:18:139:18 | 1 | 7 |
|
||||
| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | Exit | 2 |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:21:139:29 | return ...; | 5 |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | case ...: | 2 |
|
||||
| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:21:140:29 | return ...; | 5 |
|
||||
| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:138:22:138:31 | return ...; | 9 |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | case ...: | 6 |
|
||||
| Switch.cs:139:18:139:18 | After 1 [match] | Switch.cs:139:21:139:29 | return ...; | 5 |
|
||||
| Switch.cs:139:18:139:18 | After 1 [no-match] | Switch.cs:140:18:140:18 | 2 | 4 |
|
||||
| Switch.cs:140:18:140:18 | After 2 [match] | Switch.cs:140:21:140:29 | return ...; | 5 |
|
||||
| Switch.cs:140:18:140:18 | After 2 [no-match] | Switch.cs:138:22:138:31 | return ...; | 10 |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:18:148:18 | 1 | 7 |
|
||||
| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | Exit | 2 |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:21:148:29 | return ...; | 5 |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | case ...: | 2 |
|
||||
| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:21:150:29 | return ...; | 5 |
|
||||
| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:149:22:149:31 | return ...; | 9 |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | ... => ... | 9 |
|
||||
| Switch.cs:148:18:148:18 | After 1 [match] | Switch.cs:148:21:148:29 | return ...; | 5 |
|
||||
| Switch.cs:148:18:148:18 | After 1 [no-match] | Switch.cs:150:18:150:18 | 2 | 4 |
|
||||
| Switch.cs:150:18:150:18 | After 2 [match] | Switch.cs:150:21:150:29 | return ...; | 5 |
|
||||
| Switch.cs:150:18:150:18 | After 2 [no-match] | Switch.cs:149:22:149:31 | return ...; | 10 |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:31 | true | 10 |
|
||||
| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | access to parameter b | 6 |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:36:156:38 | "a" | 3 |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | ... => ... | 2 |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:50:156:52 | "b" | 3 |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | 1 |
|
||||
| Switch.cs:156:28:156:31 | After true [match] | Switch.cs:156:36:156:38 | "a" | 3 |
|
||||
| Switch.cs:156:28:156:31 | After true [no-match] | Switch.cs:156:41:156:45 | false | 4 |
|
||||
| Switch.cs:156:41:156:45 | After false [match] | Switch.cs:156:50:156:52 | "b" | 3 |
|
||||
| Switch.cs:156:41:156:45 | After false [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | 2 |
|
||||
| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:154:10:154:12 | Exit | 4 |
|
||||
| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:160:13:160:49 | After ...; | 14 |
|
||||
| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:158:13:158:49 | After ...; | 14 |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | case ...: | 6 |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:18:167:18 | 1 | 7 |
|
||||
| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:163:10:163:12 | Exit | 4 |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:167:18:167:18 | 1 | 2 |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | case ...: | 2 |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:168:18:168:18 | 2 | 2 |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | case ...: | 2 |
|
||||
| Switch.cs:167:18:167:18 | After 1 [match] | Switch.cs:167:13:167:19 | After case ...: [match] | 2 |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:168:18:168:18 | 2 | 4 |
|
||||
| Switch.cs:168:18:168:18 | After 2 [match] | Switch.cs:168:13:168:19 | After case ...: [match] | 2 |
|
||||
| Switch.cs:168:18:168:18 | After 2 [no-match] | Switch.cs:171:18:171:18 | 3 | 4 |
|
||||
| Switch.cs:169:17:169:51 | ...; | Switch.cs:170:17:170:22 | break; | 8 |
|
||||
| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:173:17:173:22 | break; | 10 |
|
||||
| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:176:17:176:22 | break; | 11 |
|
||||
| Switch.cs:171:18:171:18 | After 3 [match] | Switch.cs:173:17:173:22 | break; | 10 |
|
||||
| Switch.cs:171:18:171:18 | After 3 [no-match] | Switch.cs:176:17:176:22 | break; | 12 |
|
||||
| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | Exit | 11 |
|
||||
| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | ... is ... | 27 |
|
||||
| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | Exit | 11 |
|
||||
@@ -1157,21 +1158,23 @@
|
||||
| cflow.cs:30:18:33:37 | After if (...) ... | cflow.cs:30:18:33:37 | After if (...) ... | 1 |
|
||||
| cflow.cs:30:22:30:31 | After ... == ... [false] | cflow.cs:33:17:33:37 | After ...; | 7 |
|
||||
| cflow.cs:30:22:30:31 | After ... == ... [true] | cflow.cs:31:17:31:42 | After ...; | 7 |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:13:41:19 | case ...: | 6 |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:18:41:18 | 1 | 7 |
|
||||
| cflow.cs:37:17:37:22 | Exit | cflow.cs:37:17:37:22 | Exit | 1 |
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | case ...: | 4 |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:43:17:43:28 | goto case ...; | 11 |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | case ...: | 2 |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:46:17:46:28 | goto case ...; | 11 |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | case ...: | 2 |
|
||||
| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:49:17:49:22 | break; | 10 |
|
||||
| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | 1 |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | case ...: | 10 |
|
||||
| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:55:17:55:22 | break; | 10 |
|
||||
| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:58:17:58:22 | break; | 11 |
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:18:53:19 | 42 | 5 |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:43:17:43:28 | goto case ...; | 10 |
|
||||
| cflow.cs:41:18:41:18 | After 1 [match] | cflow.cs:41:18:41:18 | After 1 [match] | 1 |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:44:18:44:18 | 2 | 4 |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:46:17:46:28 | goto case ...; | 10 |
|
||||
| cflow.cs:44:18:44:18 | After 2 [match] | cflow.cs:44:18:44:18 | After 2 [match] | 1 |
|
||||
| cflow.cs:44:18:44:18 | After 2 [no-match] | cflow.cs:47:18:47:18 | 3 | 4 |
|
||||
| cflow.cs:47:18:47:18 | After 3 [match] | cflow.cs:49:17:49:22 | break; | 10 |
|
||||
| cflow.cs:47:18:47:18 | After 3 [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | 2 |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:18:62:18 | 0 | 11 |
|
||||
| cflow.cs:53:18:53:19 | After 42 [match] | cflow.cs:55:17:55:22 | break; | 10 |
|
||||
| cflow.cs:53:18:53:19 | After 42 [no-match] | cflow.cs:58:17:58:22 | break; | 12 |
|
||||
| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Normal Exit | 5 |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | ... == ... | 11 |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | 1 |
|
||||
| cflow.cs:62:18:62:18 | After 0 [match] | cflow.cs:63:23:63:33 | ... == ... | 11 |
|
||||
| cflow.cs:62:18:62:18 | After 0 [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | 2 |
|
||||
| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:37:17:37:22 | Exceptional Exit | 8 |
|
||||
| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:65:17:65:22 | break; | 5 |
|
||||
| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | ... == ... | 8 |
|
||||
@@ -1293,15 +1296,15 @@
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | ... > ... | 12 |
|
||||
| cflow.cs:242:19:242:35 | After ... == ... [false] | cflow.cs:242:16:242:36 | After !... [false] | 3 |
|
||||
| cflow.cs:242:19:242:35 | After ... == ... [true] | cflow.cs:242:39:242:41 | {...} | 4 |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | case ...: | 15 |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:18:248:18 | 0 | 16 |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:244:31:244:41 | goto ...; | 3 |
|
||||
| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:240:10:240:13 | Exit | 4 |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:249:17:249:29 | goto default; | 4 |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | case ...: | 2 |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:252:17:252:22 | break; | 10 |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | case ...: | 2 |
|
||||
| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:254:17:254:27 | goto ...; | 4 |
|
||||
| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:255:13:255:20 | default: | 2 |
|
||||
| cflow.cs:248:18:248:18 | After 0 [match] | cflow.cs:249:17:249:29 | goto default; | 4 |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:250:18:250:18 | 1 | 4 |
|
||||
| cflow.cs:250:18:250:18 | After 1 [match] | cflow.cs:252:17:252:22 | break; | 10 |
|
||||
| cflow.cs:250:18:250:18 | After 1 [no-match] | cflow.cs:253:18:253:18 | 2 | 4 |
|
||||
| cflow.cs:253:18:253:18 | After 2 [match] | cflow.cs:254:17:254:27 | goto ...; | 4 |
|
||||
| cflow.cs:253:18:253:18 | After 2 [no-match] | cflow.cs:255:13:255:20 | default: | 3 |
|
||||
| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:257:17:257:22 | break; | 9 |
|
||||
| cflow.cs:261:49:261:53 | Entry | cflow.cs:264:18:264:22 | After Int32 i = ... | 12 |
|
||||
| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Exceptional Exit | 1 |
|
||||
|
||||
@@ -541,19 +541,19 @@ conditionBlock
|
||||
| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:14:18:9 | After if (...) ... | false |
|
||||
| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | After ... is ... [false] | false |
|
||||
| Patterns.cs:5:10:5:11 | Entry | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [match] | true |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:13:22:23 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:13:24:36 | After case ...: [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:13:24:36 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:18:22:22 | After "xyz" [match] | true |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:22:18:22:22 | After "xyz" [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:18:24:23 | After Int32 i2 [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:18:24:23 | After Int32 i2 [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | After case ...: [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:13:27:24 | case ...: | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:13:30:27 | After case ...: [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:13:30:27 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:18:27:23 | After Int32 i3 [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:18:30:26 | After String s2 [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:30:18:30:26 | After String s2 [no-match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:18:33:23 | After Object v2 [match] | false |
|
||||
| Patterns.cs:8:9:18:9 | After if (...) ... | Patterns.cs:33:18:33:23 | After Object v2 [no-match] | false |
|
||||
| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | After ... is ... [false] | false |
|
||||
| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:12:18:12:31 | [MatchTrue] ... is ... | true |
|
||||
| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:14:18:9 | After if (...) ... | false |
|
||||
@@ -561,24 +561,24 @@ conditionBlock
|
||||
| Patterns.cs:8:13:8:23 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | false |
|
||||
| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | After ... is ... [false] | false |
|
||||
| Patterns.cs:12:18:12:31 | After ... is ... [false] | Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | true |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [match] | true |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | true |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | true |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | false |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | true |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [match] | true |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | false |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [match] | true |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [match] | true |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | false |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:24:18:24:23 | After Int32 i2 [match] | true |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:24:18:24:23 | After Int32 i2 [no-match] | false |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | true |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | true |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [match] | Patterns.cs:24:30:24:35 | After ... > ... [false] | false |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [match] | Patterns.cs:24:30:24:35 | After ... > ... [true] | true |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | After Int32 i3 [match] | true |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:18:30:26 | After String s2 [match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:30:18:30:26 | After String s2 [no-match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:18:33:23 | After Object v2 [match] | false |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:33:18:33:23 | After Object v2 [no-match] | false |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:30:18:30:26 | After String s2 [match] | true |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:30:18:30:26 | After String s2 [no-match] | false |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:33:18:33:23 | After Object v2 [match] | false |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:33:18:33:23 | After Object v2 [no-match] | false |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [no-match] | Patterns.cs:33:18:33:23 | After Object v2 [match] | true |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [no-match] | Patterns.cs:33:18:33:23 | After Object v2 [no-match] | false |
|
||||
| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | true |
|
||||
| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | After ... is ... [false] | false |
|
||||
| Patterns.cs:50:24:50:25 | Entry | Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | true |
|
||||
@@ -589,26 +589,26 @@ conditionBlock
|
||||
| Patterns.cs:51:9:51:21 | After ... is ... [false] | Patterns.cs:51:34:51:39 | [MatchTrue] ... is ... | true |
|
||||
| Patterns.cs:51:9:51:21 | [MatchTrue] ... is ... | Patterns.cs:51:25:51:30 | [MatchTrue] ... is ... | true |
|
||||
| Patterns.cs:53:24:53:25 | Entry | Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | true |
|
||||
| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [match] | true |
|
||||
| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | After ... => ... [match] | true |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:27 | After ... => ... [match] | false |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [match] | true |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | After ... => ... [match] | true |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:24 | After ... => ... [match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:20 | After ... => ... [match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [match] | true |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | false |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | true |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | false |
|
||||
| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:17 | After not ... [match] | true |
|
||||
| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:60:13:60:17 | After not ... [no-match] | false |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:17 | After not ... [match] | true |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:69:13:69:17 | After not ... [no-match] | false |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:13 | After 2 [match] | false |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:70:13:70:13 | After 2 [no-match] | false |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [no-match] | Patterns.cs:70:13:70:13 | After 2 [match] | true |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [no-match] | Patterns.cs:70:13:70:13 | After 2 [no-match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:15 | After > ... [match] | true |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:78:13:78:15 | After > ... [no-match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:15 | After < ... [match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:79:13:79:15 | After < ... [no-match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:13 | After 1 [match] | false |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:80:13:80:13 | After 1 [no-match] | false |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:79:13:79:15 | After < ... [match] | true |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:79:13:79:15 | After < ... [no-match] | false |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:80:13:80:13 | After 1 [match] | false |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:80:13:80:13 | After 1 [no-match] | false |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [no-match] | Patterns.cs:80:13:80:13 | After 1 [match] | true |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [no-match] | Patterns.cs:80:13:80:13 | After 1 [no-match] | false |
|
||||
| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | After ... is ... [false] | false |
|
||||
| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | true |
|
||||
| Patterns.cs:87:26:87:27 | Entry | Patterns.cs:87:39:87:54 | After ... is ... [false] | false |
|
||||
@@ -620,187 +620,189 @@ conditionBlock
|
||||
| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | After ... is ... [false] | false |
|
||||
| PostDominance.cs:17:10:17:11 | Entry | PostDominance.cs:19:13:19:21 | [MatchTrue] ... is ... | true |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:10:10:10:11 | Exceptional Exit | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [match] | true |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:13:14:21 | After case ...: [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:18:14:20 | After "a" [match] | true |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:14:18:14:20 | After "a" [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:13:16:19 | After case ...: [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:13:16:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:13:18:22 | After case ...: [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:13:18:22 | After case ...: [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:13:20:23 | After case ...: [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:13:20:23 | After case ...: [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:18:16:18 | After 0 [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:16:18:16:18 | After 0 [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:18:18:21 | After null [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:18:18:18:21 | After null [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:18:20:22 | After Int32 i [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:20:18:20:22 | After Int32 i [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:21:21:21:29 | After ... == ... [false] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:21:21:21:29 | After ... == ... [true] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:13:24:56 | After case ...: [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:13:24:56 | After case ...: [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:18:24:25 | After String s [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:18:24:25 | After String s [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:43 | After ... > ... [true] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:32:24:55 | After ... && ... [false] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:24:48:24:55 | After ... != ... [true] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | After case ...: [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | After case ...: [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:13:27:39 | case ...: | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:18:27:25 | After Double d [match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:27:18:27:25 | After Double d [no-match] | false |
|
||||
| Switch.cs:10:10:10:11 | Entry | Switch.cs:30:13:30:20 | After default: [match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | false |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:30:13:30:20 | After default: [match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [match] | true |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | false |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [match] | true |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | true |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | true |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [match] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | false |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | false |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:21:21:29 | After ... == ... [true] | true |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [match] | true |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | false |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | true |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | true |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | true |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | true |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | true |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:43 | After ... > ... [true] | true |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:48:24:55 | After ... != ... [false] | true |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:48:24:55 | After ... != ... [true] | true |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:16:18:16:18 | After 0 [match] | true |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:16:18:16:18 | After 0 [no-match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:18:18:18:21 | After null [match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:18:18:18:21 | After null [no-match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:20:18:20:22 | After Int32 i [match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:20:18:20:22 | After Int32 i [no-match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:24:18:24:25 | After String s [match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:24:18:24:25 | After String s [no-match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:27:13:27:39 | case ...: | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:27:18:27:25 | After Double d [match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:27:18:27:25 | After Double d [no-match] | false |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:30:13:30:20 | After default: [match] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:18:18:18:21 | After null [match] | true |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:18:18:18:21 | After null [no-match] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:20:18:20:22 | After Int32 i [match] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:20:18:20:22 | After Int32 i [no-match] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:24:18:24:25 | After String s [match] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:24:18:24:25 | After String s [no-match] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:27:13:27:39 | case ...: | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:27:18:27:25 | After Double d [match] | false |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:27:18:27:25 | After Double d [no-match] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:20:18:20:22 | After Int32 i [match] | true |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:20:18:20:22 | After Int32 i [no-match] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:21:21:21:29 | After ... == ... [false] | true |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:21:21:21:29 | After ... == ... [true] | true |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:24:18:24:25 | After String s [match] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:24:18:24:25 | After String s [no-match] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:27:13:27:39 | case ...: | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:27:18:27:25 | After Double d [match] | false |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:27:18:27:25 | After Double d [no-match] | false |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [match] | Switch.cs:21:21:21:29 | After ... == ... [false] | false |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [match] | Switch.cs:21:21:21:29 | After ... == ... [true] | true |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:18:24:25 | After String s [match] | true |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:18:24:25 | After String s [no-match] | false |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:32:24:43 | After ... > ... [false] | true |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:32:24:43 | After ... > ... [true] | true |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:32:24:55 | After ... && ... [false] | true |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:48:24:55 | After ... != ... [false] | true |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:24:48:24:55 | After ... != ... [true] | true |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:24:32:24:43 | After ... > ... [false] | false |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:24:32:24:43 | After ... > ... [true] | true |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:24:48:24:55 | After ... != ... [false] | true |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:24:48:24:55 | After ... != ... [true] | true |
|
||||
| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | After ... != ... [false] | false |
|
||||
| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:24:48:24:55 | After ... != ... [true] | true |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [match] | true |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [no-match] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | After case ...: [match] | true |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:13:48:23 | After case ...: [no-match] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:13:50:39 | After case ...: [match] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:13:50:39 | After case ...: [no-match] | false |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | After Double d [match] | true |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | After Double d [no-match] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:18:48:20 | After access to type Int32 [match] | true |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:18:50:21 | After access to type Boolean [match] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:18:50:21 | After access to type Boolean [no-match] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:30:50:38 | After ... != ... [false] | false |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:50:30:50:38 | After ... != ... [true] | false |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [match] | true |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | false |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:30:50:38 | After ... != ... [false] | true |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:30:50:38 | After ... != ... [true] | true |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | After ... != ... [false] | false |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | After ... != ... [true] | true |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | After case ...: [match] | true |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:13:59:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:13:61:19 | After case ...: [match] | false |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:13:61:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [match] | true |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | After case ...: [match] | true |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:13:70:23 | After case ...: [no-match] | false |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:13:72:20 | After case ...: [match] | false |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:13:72:20 | After case ...: [no-match] | false |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [match] | true |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | false |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:50:18:50:21 | After access to type Boolean [match] | true |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:50:18:50:21 | After access to type Boolean [no-match] | false |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:50:30:50:38 | After ... != ... [false] | true |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:50:30:50:38 | After ... != ... [true] | true |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [match] | Switch.cs:50:30:50:38 | After ... != ... [false] | false |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [match] | Switch.cs:50:30:50:38 | After ... != ... [true] | true |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:18:59:18 | After 2 [match] | true |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:59:18:59:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:18:61:18 | After 3 [match] | false |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:61:18:61:18 | After 3 [no-match] | false |
|
||||
| Switch.cs:59:18:59:18 | After 2 [no-match] | Switch.cs:61:18:61:18 | After 3 [match] | true |
|
||||
| Switch.cs:59:18:59:18 | After 2 [no-match] | Switch.cs:61:18:61:18 | After 3 [no-match] | false |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:18:70:20 | After access to type Int32 [match] | true |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | false |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:18:72:19 | After "" [match] | false |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:72:18:72:19 | After "" [no-match] | false |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | Switch.cs:72:18:72:19 | After "" [match] | true |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | Switch.cs:72:18:72:19 | After "" [no-match] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:79:9:87:9 | After switch (...) {...} | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | After case ...: [match] | true |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:13:81:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:13:83:19 | After case ...: [match] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:13:83:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:18:81:18 | After 1 [match] | true |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:81:18:81:18 | After 1 [no-match] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:18:83:18 | After 2 [match] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:83:18:83:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:84:21:84:25 | After ... > ... [false] | false |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:84:21:84:25 | After ... > ... [true] | false |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [match] | true |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:84:21:84:25 | After ... > ... [false] | true |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:84:21:84:25 | After ... > ... [true] | true |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | After ... > ... [false] | false |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:21:84:25 | After ... > ... [true] | true |
|
||||
| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | After case ...: [match] | true |
|
||||
| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:13:95:23 | After case ...: [no-match] | false |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:83:18:83:18 | After 2 [match] | true |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:83:18:83:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:84:21:84:25 | After ... > ... [false] | true |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:84:21:84:25 | After ... > ... [true] | true |
|
||||
| Switch.cs:83:18:83:18 | After 2 [match] | Switch.cs:84:21:84:25 | After ... > ... [false] | false |
|
||||
| Switch.cs:83:18:83:18 | After 2 [match] | Switch.cs:84:21:84:25 | After ... > ... [true] | true |
|
||||
| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:18:95:20 | After access to type Int32 [match] | true |
|
||||
| Switch.cs:91:10:91:11 | Entry | Switch.cs:95:18:95:20 | After access to type Int32 [no-match] | false |
|
||||
| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | After access to parameter s [non-null] | false |
|
||||
| Switch.cs:101:9:101:10 | Entry | Switch.cs:103:17:103:17 | After access to parameter s [null] | true |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | After case ...: [match] | true |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:13:106:19 | After case ...: [match] | false |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:13:106:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [match] | true |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | After case ...: [match] | true |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:13:117:35 | After case ...: [no-match] | false |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:18:105:18 | After 0 [match] | true |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:18:105:18 | After 0 [no-match] | false |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:18:106:18 | After 1 [match] | false |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:106:18:106:18 | After 1 [no-match] | false |
|
||||
| Switch.cs:105:18:105:18 | After 0 [no-match] | Switch.cs:106:18:106:18 | After 1 [match] | true |
|
||||
| Switch.cs:105:18:105:18 | After 0 [no-match] | Switch.cs:106:18:106:18 | After 1 [no-match] | false |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:18:117:18 | After 3 [match] | true |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:18:117:18 | After 3 [no-match] | false |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:25:117:34 | After ... == ... [false] | true |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:117:25:117:34 | After ... == ... [true] | true |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | After ... == ... [false] | false |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | After ... == ... [true] | true |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | After ... == ... [false] | false |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | After ... == ... [true] | true |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [match] | true |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [no-match] | false |
|
||||
| Switch.cs:117:18:117:18 | After 3 [match] | Switch.cs:117:25:117:34 | After ... == ... [false] | false |
|
||||
| Switch.cs:117:18:117:18 | After 3 [match] | Switch.cs:117:25:117:34 | After ... == ... [true] | true |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | After 2 [match] | true |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:33 | After ... == ... [false] | true |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:25:118:33 | After ... == ... [true] | true |
|
||||
| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | After ... => ... [match] | true |
|
||||
| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:34 | After ... => ... [no-match] | false |
|
||||
| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | After ... => ... [match] | true |
|
||||
| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:40 | After ... => ... [no-match] | false |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | After case ...: [match] | true |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:13:139:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:13:140:19 | After case ...: [match] | false |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:13:140:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [match] | true |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | After case ...: [match] | true |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:13:148:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:13:150:19 | After case ...: [match] | false |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:13:150:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [match] | true |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | After ... => ... [match] | true |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:38 | After ... => ... [no-match] | false |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:52 | After ... => ... [match] | false |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:52 | After ... => ... [no-match] | false |
|
||||
| Switch.cs:118:18:118:18 | After 2 [match] | Switch.cs:118:25:118:33 | After ... == ... [false] | false |
|
||||
| Switch.cs:118:18:118:18 | After 2 [match] | Switch.cs:118:25:118:33 | After ... == ... [true] | true |
|
||||
| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:29 | After Boolean b [match] | true |
|
||||
| Switch.cs:123:10:123:12 | Entry | Switch.cs:125:24:125:29 | After Boolean b [no-match] | false |
|
||||
| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:35 | After String s [match] | true |
|
||||
| Switch.cs:129:12:129:14 | Entry | Switch.cs:131:28:131:35 | After String s [no-match] | false |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:18:139:18 | After 1 [match] | true |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:139:18:139:18 | After 1 [no-match] | false |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:18:140:18 | After 2 [match] | false |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:140:18:140:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:139:18:139:18 | After 1 [no-match] | Switch.cs:140:18:140:18 | After 2 [match] | true |
|
||||
| Switch.cs:139:18:139:18 | After 1 [no-match] | Switch.cs:140:18:140:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:18:148:18 | After 1 [match] | true |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:148:18:148:18 | After 1 [no-match] | false |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:18:150:18 | After 2 [match] | false |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:150:18:150:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:148:18:148:18 | After 1 [no-match] | Switch.cs:150:18:150:18 | After 2 [match] | true |
|
||||
| Switch.cs:148:18:148:18 | After 1 [no-match] | Switch.cs:150:18:150:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:31 | After true [match] | true |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:28:156:31 | After true [no-match] | false |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:45 | After false [match] | false |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:156:41:156:45 | After false [no-match] | false |
|
||||
| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | After access to parameter b [false] | false |
|
||||
| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:157:13:157:13 | After access to parameter b [true] | true |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [match] | true |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | After case ...: [match] | true |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:13:167:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:13:168:19 | After case ...: [match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:13:168:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:13:171:19 | After case ...: [match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:13:171:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [match] | true |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [match] | false |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [match] | true |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | false |
|
||||
| Switch.cs:156:28:156:31 | After true [no-match] | Switch.cs:156:41:156:45 | After false [match] | true |
|
||||
| Switch.cs:156:28:156:31 | After true [no-match] | Switch.cs:156:41:156:45 | After false [no-match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:18:167:18 | After 1 [match] | true |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:167:18:167:18 | After 1 [no-match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:18:168:18 | After 2 [match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:168:18:168:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:18:171:18 | After 3 [match] | false |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:171:18:171:18 | After 3 [no-match] | false |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:168:18:168:18 | After 2 [match] | true |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:168:18:168:18 | After 2 [no-match] | false |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:171:18:171:18 | After 3 [match] | false |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:171:18:171:18 | After 3 [no-match] | false |
|
||||
| Switch.cs:168:18:168:18 | After 2 [no-match] | Switch.cs:171:18:171:18 | After 3 [match] | true |
|
||||
| Switch.cs:168:18:168:18 | After 2 [no-match] | Switch.cs:171:18:171:18 | After 3 [no-match] | false |
|
||||
| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | After ... is ... [false] | false |
|
||||
| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:7:13:7:22 | [MatchTrue] ... is ... | true |
|
||||
| VarDecls.cs:19:7:19:8 | Entry | VarDecls.cs:25:20:25:20 | After access to parameter b [false] | false |
|
||||
@@ -873,41 +875,44 @@ conditionBlock
|
||||
| cflow.cs:28:22:28:31 | After ... == ... [false] | cflow.cs:30:22:30:31 | After ... == ... [true] | true |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:37:17:37:22 | Exit | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:39:9:50:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:13:41:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:44:13:44:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:13:47:19 | After case ...: [match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:13:47:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:18:41:18 | After 1 [match] | true |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:41:18:41:18 | After 1 [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:44:18:44:18 | After 2 [match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:44:18:44:18 | After 2 [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:18:47:18 | After 3 [match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:47:18:47:18 | After 3 [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:51:9:59:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:13:53:20 | After case ...: [match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:13:53:20 | After case ...: [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:18:53:19 | After 42 [match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:53:18:53:19 | After 42 [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:60:9:66:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:13:62:19 | After case ...: [match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:13:62:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:18:62:18 | After 0 [match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:62:18:62:18 | After 0 [no-match] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:63:23:63:33 | After ... == ... [false] | false |
|
||||
| cflow.cs:37:17:37:22 | Entry | cflow.cs:63:23:63:33 | After ... == ... [true] | false |
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [match] | true |
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:13:53:20 | After case ...: [no-match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Exit | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:39:9:50:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:51:9:59:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:53:13:53:20 | After case ...: [no-match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:60:9:66:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [false] | false |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:63:23:63:33 | After ... == ... [true] | false |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [match] | true |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [match] | true |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:13:62:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:18:53:19 | After 42 [match] | true |
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:53:18:53:19 | After 42 [no-match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:37:17:37:22 | Exit | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:39:9:50:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:44:18:44:18 | After 2 [match] | true |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:44:18:44:18 | After 2 [no-match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:47:18:47:18 | After 3 [match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:47:18:47:18 | After 3 [no-match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:51:9:59:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:53:18:53:19 | After 42 [match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:53:18:53:19 | After 42 [no-match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:60:9:66:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:62:18:62:18 | After 0 [match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:62:18:62:18 | After 0 [no-match] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:63:23:63:33 | After ... == ... [false] | false |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:63:23:63:33 | After ... == ... [true] | false |
|
||||
| cflow.cs:44:18:44:18 | After 2 [no-match] | cflow.cs:47:18:47:18 | After 3 [match] | true |
|
||||
| cflow.cs:44:18:44:18 | After 2 [no-match] | cflow.cs:47:18:47:18 | After 3 [no-match] | false |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:18:62:18 | After 0 [match] | true |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:62:18:62:18 | After 0 [no-match] | false |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [false] | true |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:63:23:63:33 | After ... == ... [true] | true |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | After ... == ... [false] | false |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:23:63:33 | After ... == ... [true] | true |
|
||||
| cflow.cs:62:18:62:18 | After 0 [match] | cflow.cs:63:23:63:33 | After ... == ... [false] | false |
|
||||
| cflow.cs:62:18:62:18 | After 0 [match] | cflow.cs:63:23:63:33 | After ... == ... [true] | true |
|
||||
| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | After ... == ... [false] | false |
|
||||
| cflow.cs:70:18:70:18 | Entry | cflow.cs:72:13:72:21 | After ... == ... [true] | true |
|
||||
| cflow.cs:70:18:70:18 | Entry | cflow.cs:74:9:81:9 | After if (...) ... | false |
|
||||
@@ -1054,25 +1059,25 @@ conditionBlock
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [false] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:244:13:244:28 | After ... > ... [true] | true |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:246:9:258:9 | After switch (...) {...} | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:13:248:19 | After case ...: [match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:13:248:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:13:250:19 | After case ...: [match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:13:250:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:13:253:19 | After case ...: [match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:13:253:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:18:248:18 | After 0 [match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:248:18:248:18 | After 0 [no-match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:18:250:18 | After 1 [match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:250:18:250:18 | After 1 [no-match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:18:253:18 | After 2 [match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:253:18:253:18 | After 2 [no-match] | false |
|
||||
| cflow.cs:242:12:242:41 | After if (...) ... | cflow.cs:255:13:255:20 | After default: [match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | After case ...: [match] | true |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:13:248:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:13:250:19 | After case ...: [match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:13:250:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:13:253:19 | After case ...: [match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:13:253:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [match] | true |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [match] | false |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [match] | true |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:18:248:18 | After 0 [match] | true |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:248:18:248:18 | After 0 [no-match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:18:250:18 | After 1 [match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:250:18:250:18 | After 1 [no-match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:18:253:18 | After 2 [match] | false |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:253:18:253:18 | After 2 [no-match] | false |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:250:18:250:18 | After 1 [match] | true |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:250:18:250:18 | After 1 [no-match] | false |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:253:18:253:18 | After 2 [match] | false |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:253:18:253:18 | After 2 [no-match] | false |
|
||||
| cflow.cs:250:18:250:18 | After 1 [no-match] | cflow.cs:253:18:253:18 | After 2 [match] | true |
|
||||
| cflow.cs:250:18:250:18 | After 1 [no-match] | cflow.cs:253:18:253:18 | After 2 [no-match] | false |
|
||||
| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Exceptional Exit | false |
|
||||
| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Exit | false |
|
||||
| cflow.cs:264:25:264:30 | Before ... < ... | cflow.cs:261:49:261:53 | Normal Exit | false |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5616,11 +5616,15 @@ nodeEnclosing
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:23:17:23:22 | Before break; | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:23:17:23:22 | break; | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:5:10:5:11 | M1 |
|
||||
@@ -5646,6 +5650,8 @@ nodeEnclosing
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:28:17:28:46 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:28:17:28:46 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 |
|
||||
@@ -5665,6 +5671,8 @@ nodeEnclosing
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:31:17:31:49 | After call to method WriteLine | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:31:17:31:49 | Before call to method WriteLine | Patterns.cs:5:10:5:11 | M1 |
|
||||
@@ -5684,6 +5692,8 @@ nodeEnclosing
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:34:17:34:22 | Before break; | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:34:17:34:22 | break; | Patterns.cs:5:10:5:11 | M1 |
|
||||
@@ -5772,7 +5782,8 @@ nodeEnclosing
|
||||
| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:17 | After not ... | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [no-match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:17 | Before not ... | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:56:26:56:27 | M5 |
|
||||
@@ -5780,6 +5791,7 @@ nodeEnclosing
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:61:13:61:13 | After _ [match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:61:13:61:13 | _ | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:61:13:61:24 | After ... => ... [match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
@@ -5793,7 +5805,8 @@ nodeEnclosing
|
||||
| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:17 | After not ... | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [no-match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:17 | Before not ... | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:65:26:65:27 | M6 |
|
||||
@@ -5802,6 +5815,8 @@ nodeEnclosing
|
||||
| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:22:69:33 | "impossible" | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [no-match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
@@ -5817,7 +5832,8 @@ nodeEnclosing
|
||||
| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:15 | After > ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:15 | Before > ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
@@ -5825,7 +5841,8 @@ nodeEnclosing
|
||||
| Patterns.cs:78:15:78:15 | 1 | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:15 | After < ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:15 | Before < ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
@@ -5833,10 +5850,13 @@ nodeEnclosing
|
||||
| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:81:13:81:13 | After _ [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:81:13:81:13 | _ | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:81:13:81:20 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
@@ -6191,12 +6211,16 @@ nodeEnclosing
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:13:14:21 | case ...: | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:18:14:20 | "a" | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:18:14:20 | After "a" [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:15:17:15:23 | Before return ...; | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:15:17:15:23 | return ...; | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:13:16:19 | case ...: | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:18:16:18 | 0 | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:18:16:18 | After 0 [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:17:17:17:38 | Before throw ...; | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:17:23:17:37 | After object creation of type Exception | Switch.cs:10:10:10:11 | M2 |
|
||||
@@ -6205,12 +6229,16 @@ nodeEnclosing
|
||||
| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:13:18:22 | case ...: | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:18:18:21 | After null [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:18:18:21 | null | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:19:17:19:29 | Before goto default; | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:19:17:19:29 | goto default; | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:13:20:23 | case ...: | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:21:17:22:27 | After if (...) ... | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:10:10:10:11 | M2 |
|
||||
@@ -6228,6 +6256,8 @@ nodeEnclosing
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:13:24:56 | case ...: | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:18:24:25 | After String s [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:18:24:25 | String s | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:32:24:39 | After access to property Length | Switch.cs:10:10:10:11 | M2 |
|
||||
@@ -6258,6 +6288,8 @@ nodeEnclosing
|
||||
| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:18:27:25 | After Double d [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:18:27:25 | After Double d [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:18:27:25 | Double d | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:32:27:38 | Before call to method Throw | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | M2 |
|
||||
@@ -6287,12 +6319,16 @@ nodeEnclosing
|
||||
| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:13:48:23 | case ...: | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:49:17:49:22 | Before break; | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:49:17:49:22 | break; | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:13:50:39 | case ...: | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:44:10:44:11 | M4 |
|
||||
@@ -6318,12 +6354,16 @@ nodeEnclosing
|
||||
| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:13:59:19 | case ...: | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:18:59:18 | 2 | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:18:59:18 | After 2 [match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:18:59:18 | After 2 [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:60:17:60:22 | Before break; | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:60:17:60:22 | break; | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:13:61:19 | case ...: | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:18:61:18 | 3 | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:18:61:18 | After 3 [match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:18:61:18 | After 3 [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:62:17:62:22 | Before break; | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:62:17:62:22 | break; | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:66:10:66:11 | M6 |
|
||||
@@ -6341,6 +6381,8 @@ nodeEnclosing
|
||||
| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:13:70:23 | case ...: | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:71:17:71:22 | Before break; | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:71:17:71:22 | break; | Switch.cs:66:10:66:11 | M6 |
|
||||
@@ -6348,6 +6390,8 @@ nodeEnclosing
|
||||
| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:13:72:20 | case ...: | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:18:72:19 | "" | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:18:72:19 | After "" [match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:18:72:19 | After "" [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:73:17:73:22 | Before break; | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:73:17:73:22 | break; | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:10:77:11 | M7 |
|
||||
@@ -6363,6 +6407,8 @@ nodeEnclosing
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:13:81:19 | case ...: | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:18:81:18 | 1 | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:18:81:18 | After 1 [match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:82:17:82:28 | Before return ...; | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:82:17:82:28 | return ...; | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:82:24:82:27 | true | Switch.cs:77:10:77:11 | M7 |
|
||||
@@ -6370,6 +6416,8 @@ nodeEnclosing
|
||||
| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:13:83:19 | case ...: | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:18:83:18 | After 2 [match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:18:83:18 | After 2 [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:84:17:85:26 | After if (...) ... | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:77:10:77:11 | M7 |
|
||||
@@ -6397,6 +6445,8 @@ nodeEnclosing
|
||||
| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:13:95:23 | case ...: | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [no-match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:96:17:96:28 | Before return ...; | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:96:17:96:28 | return ...; | Switch.cs:91:10:91:11 | M8 |
|
||||
@@ -6421,6 +6471,8 @@ nodeEnclosing
|
||||
| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:13:105:19 | case ...: | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:18:105:18 | 0 | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:18:105:18 | After 0 [match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:18:105:18 | After 0 [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:21:105:29 | Before return ...; | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:21:105:29 | return ...; | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:28:105:28 | 0 | Switch.cs:101:9:101:10 | M9 |
|
||||
@@ -6428,6 +6480,8 @@ nodeEnclosing
|
||||
| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:13:106:19 | case ...: | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:18:106:18 | 1 | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:18:106:18 | After 1 [match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:18:106:18 | After 1 [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:21:106:29 | Before return ...; | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:21:106:29 | return ...; | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:28:106:28 | 1 | Switch.cs:101:9:101:10 | M9 |
|
||||
@@ -6460,6 +6514,8 @@ nodeEnclosing
|
||||
| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:13:117:35 | case ...: | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:18:117:18 | 3 | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:18:117:18 | After 3 [match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:18:117:18 | After 3 [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 |
|
||||
@@ -6473,6 +6529,8 @@ nodeEnclosing
|
||||
| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:18:118:18 | 2 | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:18:118:18 | After 2 [match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:18:118:18 | After 2 [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 |
|
||||
@@ -6500,11 +6558,14 @@ nodeEnclosing
|
||||
| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [no-match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:37:125:37 | After _ [match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:37:125:37 | _ | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:37:125:46 | After ... => ... [match] | Switch.cs:123:10:123:12 | M11 |
|
||||
@@ -6525,11 +6586,14 @@ nodeEnclosing
|
||||
| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:35 | After String s [match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:35 | After String s [no-match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:35 | String s | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:43:131:43 | After _ [match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:43:131:43 | _ | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:43:131:51 | After ... => ... [match] | Switch.cs:129:12:129:14 | M12 |
|
||||
@@ -6553,6 +6617,8 @@ nodeEnclosing
|
||||
| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:13:139:19 | case ...: | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:18:139:18 | 1 | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:18:139:18 | After 1 [match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:18:139:18 | After 1 [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:21:139:29 | Before return ...; | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:21:139:29 | return ...; | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:28:139:28 | 1 | Switch.cs:134:9:134:11 | M13 |
|
||||
@@ -6560,6 +6626,8 @@ nodeEnclosing
|
||||
| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:13:140:19 | case ...: | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:18:140:18 | 2 | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:18:140:18 | After 2 [match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:18:140:18 | After 2 [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:21:140:29 | Before return ...; | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:21:140:29 | return ...; | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:28:140:28 | 2 | Switch.cs:134:9:134:11 | M13 |
|
||||
@@ -6574,6 +6642,8 @@ nodeEnclosing
|
||||
| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:13:148:19 | case ...: | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:18:148:18 | 1 | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:18:148:18 | After 1 [match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:18:148:18 | After 1 [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:21:148:29 | Before return ...; | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:21:148:29 | return ...; | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:28:148:28 | 1 | Switch.cs:144:9:144:11 | M14 |
|
||||
@@ -6589,6 +6659,8 @@ nodeEnclosing
|
||||
| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:13:150:19 | case ...: | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:18:150:18 | 2 | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:18:150:18 | After 2 [match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:18:150:18 | After 2 [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:21:150:29 | Before return ...; | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:21:150:29 | return ...; | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:28:150:28 | 2 | Switch.cs:144:9:144:11 | M14 |
|
||||
@@ -6607,11 +6679,15 @@ nodeEnclosing
|
||||
| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:31 | After true [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:31 | After true [no-match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:31 | true | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:36:156:38 | "a" | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:45 | After false [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:45 | After false [no-match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
@@ -6661,10 +6737,14 @@ nodeEnclosing
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:13:167:19 | case ...: | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:18:167:18 | 1 | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:18:167:18 | After 1 [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:13:168:19 | case ...: | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:18:168:18 | 2 | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:18:168:18 | After 2 [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:18:168:18 | After 2 [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:169:17:169:50 | After call to method WriteLine | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:169:17:169:50 | Before call to method WriteLine | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:163:10:163:12 | M16 |
|
||||
@@ -6677,6 +6757,8 @@ nodeEnclosing
|
||||
| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:13:171:19 | case ...: | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:18:171:18 | 3 | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:18:171:18 | After 3 [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:18:171:18 | After 3 [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:172:17:172:45 | After call to method WriteLine | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:172:17:172:45 | Before call to method WriteLine | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:163:10:163:12 | M16 |
|
||||
@@ -7067,6 +7149,8 @@ nodeEnclosing
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:13:41:19 | case ...: | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:18:41:18 | 1 | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:18:41:18 | After 1 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:42:17:42:38 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:42:17:42:38 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
@@ -7080,6 +7164,8 @@ nodeEnclosing
|
||||
| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:13:44:19 | case ...: | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:18:44:18 | 2 | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:18:44:18 | After 2 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:18:44:18 | After 2 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:45:17:45:38 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:45:17:45:38 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
@@ -7093,6 +7179,8 @@ nodeEnclosing
|
||||
| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:18:47:18 | After 3 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:18:47:18 | After 3 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:48:17:48:38 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:48:17:48:38 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
@@ -7108,6 +7196,8 @@ nodeEnclosing
|
||||
| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:13:53:20 | case ...: | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:18:53:19 | 42 | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:18:53:19 | After 42 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:18:53:19 | After 42 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:54:17:54:47 | After call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:54:17:54:47 | Before call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:37:17:37:22 | Switch |
|
||||
@@ -7139,6 +7229,8 @@ nodeEnclosing
|
||||
| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:13:62:19 | case ...: | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:18:62:18 | After 0 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:18:62:18 | After 0 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:63:17:64:55 | After if (...) ... | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:63:21:63:34 | !... | cflow.cs:37:17:37:22 | Switch |
|
||||
@@ -8075,12 +8167,16 @@ nodeEnclosing
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:13:248:19 | case ...: | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:18:248:18 | 0 | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:18:248:18 | After 0 [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:249:17:249:29 | Before goto default; | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:249:17:249:29 | goto default; | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:13:250:19 | case ...: | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:18:250:18 | 1 | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:18:250:18 | After 1 [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:18:250:18 | After 1 [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:251:17:251:36 | After call to method WriteLine | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:251:17:251:36 | Before call to method WriteLine | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:240:10:240:13 | Goto |
|
||||
@@ -8093,6 +8189,8 @@ nodeEnclosing
|
||||
| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:13:253:19 | case ...: | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:18:253:18 | 2 | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:18:253:18 | After 2 [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:18:253:18 | After 2 [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:254:17:254:27 | Before goto ...; | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
@@ -9204,19 +9302,19 @@ blockEnclosing
|
||||
| Patterns.cs:16:18:16:28 | After ... is ... [false] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:16:18:16:28 | [MatchTrue] ... is ... | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:30:24:35 | After ... > ... [false] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:24:30:24:35 | After ... > ... [true] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [no-match] | Patterns.cs:5:10:5:11 | M1 |
|
||||
| Patterns.cs:47:24:47:25 | Entry | Patterns.cs:47:24:47:25 | M2 |
|
||||
| Patterns.cs:48:9:48:20 | After ... is ... | Patterns.cs:47:24:47:25 | M2 |
|
||||
| Patterns.cs:48:9:48:20 | [MatchTrue] ... is ... | Patterns.cs:47:24:47:25 | M2 |
|
||||
@@ -9233,22 +9331,22 @@ blockEnclosing
|
||||
| Patterns.cs:54:9:54:37 | [MatchTrue] ... is ... | Patterns.cs:53:24:53:25 | M4 |
|
||||
| Patterns.cs:56:26:56:27 | Entry | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [no-match] | Patterns.cs:56:26:56:27 | M5 |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [no-match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [no-match] | Patterns.cs:65:26:65:27 | M6 |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [no-match] | Patterns.cs:74:26:74:27 | M7 |
|
||||
| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:26:85:27 | M8 |
|
||||
| Patterns.cs:85:39:85:53 | After ... is ... [false] | Patterns.cs:85:26:85:27 | M8 |
|
||||
| Patterns.cs:85:39:85:53 | [MatchTrue] ... is ... | Patterns.cs:85:26:85:27 | M8 |
|
||||
@@ -9281,125 +9379,126 @@ blockEnclosing
|
||||
| Switch.cs:10:10:10:11 | Exceptional Exit | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:10:10:10:11 | Exit | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:10:10:10:11 | Normal Exit | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:18:14:20 | After "a" [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:18:16:18 | After 0 [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:18:18:21 | After null [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:21:21:21:29 | After ... == ... [false] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:21:21:21:29 | After ... == ... [true] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:18:24:25 | After String s [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:32:24:43 | After ... > ... [false] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:32:24:43 | After ... > ... [true] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:32:24:55 | After ... && ... [false] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:48:24:55 | After ... != ... [false] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:24:48:24:55 | After ... != ... [true] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:18:27:25 | After Double d [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:27:18:27:25 | After Double d [no-match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:30:13:30:20 | After default: [match] | Switch.cs:10:10:10:11 | M2 |
|
||||
| Switch.cs:35:10:35:11 | Entry | Switch.cs:35:10:35:11 | M3 |
|
||||
| Switch.cs:44:10:44:11 | Entry | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [no-match] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:30:50:38 | After ... != ... [false] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:50:30:50:38 | After ... != ... [true] | Switch.cs:44:10:44:11 | M4 |
|
||||
| Switch.cs:55:10:55:11 | Entry | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:57:9:63:9 | After switch (...) {...} | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:18:59:18 | After 2 [match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:59:18:59:18 | After 2 [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:18:61:18 | After 3 [match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:61:18:61:18 | After 3 [no-match] | Switch.cs:55:10:55:11 | M5 |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:68:9:74:9 | After switch (...) {...} | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:18:72:19 | After "" [match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:72:18:72:19 | After "" [no-match] | Switch.cs:66:10:66:11 | M6 |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:77:10:77:11 | Normal Exit | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:18:81:18 | After 1 [match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:18:83:18 | After 2 [match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:83:18:83:18 | After 2 [no-match] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:84:21:84:25 | After ... > ... [false] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:84:21:84:25 | After ... > ... [true] | Switch.cs:77:10:77:11 | M7 |
|
||||
| Switch.cs:91:10:91:11 | Entry | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:91:10:91:11 | Normal Exit | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [no-match] | Switch.cs:91:10:91:11 | M8 |
|
||||
| Switch.cs:101:9:101:10 | Entry | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:101:9:101:10 | Normal Exit | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:103:17:103:17 | After access to parameter s [non-null] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:103:17:103:17 | After access to parameter s [null] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:18:105:18 | After 0 [match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:105:18:105:18 | After 0 [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:18:106:18 | After 1 [match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:106:18:106:18 | After 1 [no-match] | Switch.cs:101:9:101:10 | M9 |
|
||||
| Switch.cs:111:17:111:21 | Entry | Switch.cs:111:17:111:21 | Throw |
|
||||
| Switch.cs:113:9:113:11 | Entry | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:113:9:113:11 | Normal Exit | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:115:9:119:9 | After switch (...) {...} | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:18:117:18 | After 3 [match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:18:117:18 | After 3 [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:25:117:34 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:117:25:117:34 | After ... == ... [true] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:18:118:18 | After 2 [match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:18:118:18 | After 2 [no-match] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:25:118:33 | After ... == ... [false] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:118:25:118:33 | After ... == ... [true] | Switch.cs:113:9:113:11 | M10 |
|
||||
| Switch.cs:123:10:123:12 | Entry | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:123:10:123:12 | Normal Exit | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [no-match] | Switch.cs:123:10:123:12 | M11 |
|
||||
| Switch.cs:129:12:129:14 | Entry | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:16:131:66 | After call to method ToString | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:35 | After String s [match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:131:28:131:35 | After String s [no-match] | Switch.cs:129:12:129:14 | M12 |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:134:9:134:11 | Normal Exit | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:18:139:18 | After 1 [match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:139:18:139:18 | After 1 [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:18:140:18 | After 2 [match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:140:18:140:18 | After 2 [no-match] | Switch.cs:134:9:134:11 | M13 |
|
||||
| Switch.cs:144:9:144:11 | Entry | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:144:9:144:11 | Normal Exit | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:18:148:18 | After 1 [match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:148:18:148:18 | After 1 [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:18:150:18 | After 2 [match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:150:18:150:18 | After 2 [no-match] | Switch.cs:144:9:144:11 | M14 |
|
||||
| Switch.cs:154:10:154:12 | Entry | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:31 | After true [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:28:156:31 | After true [no-match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:45 | After false [match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:156:41:156:45 | After false [no-match] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:157:13:157:13 | After access to parameter b [false] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:157:13:157:13 | After access to parameter b [true] | Switch.cs:154:10:154:12 | M15 |
|
||||
| Switch.cs:163:10:163:12 | Entry | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:18:167:18 | After 1 [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:18:168:18 | After 2 [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:168:18:168:18 | After 2 [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:169:17:169:51 | ...; | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:18:171:18 | After 3 [match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| Switch.cs:171:18:171:18 | After 3 [no-match] | Switch.cs:163:10:163:12 | M16 |
|
||||
| TypeAccesses.cs:1:7:1:18 | Entry | TypeAccesses.cs:1:7:1:18 | TypeAccesses |
|
||||
| TypeAccesses.cs:3:10:3:10 | Entry | TypeAccesses.cs:3:10:3:10 | M |
|
||||
| TypeAccesses.cs:7:9:7:25 | After if (...) ... | TypeAccesses.cs:3:10:3:10 | M |
|
||||
@@ -9443,17 +9542,19 @@ blockEnclosing
|
||||
| cflow.cs:37:17:37:22 | Exit | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:18:41:18 | After 1 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:18:44:18 | After 2 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:44:18:44:18 | After 2 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:18:47:18 | After 3 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:47:18:47:18 | After 3 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:18:53:19 | After 42 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:53:18:53:19 | After 42 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:60:9:66:9 | After switch (...) {...} | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:18:62:18 | After 0 [match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:62:18:62:18 | After 0 [no-match] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:63:23:63:33 | After ... == ... [false] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:63:23:63:33 | After ... == ... [true] | cflow.cs:37:17:37:22 | Switch |
|
||||
| cflow.cs:70:18:70:18 | Entry | cflow.cs:70:18:70:18 | M |
|
||||
@@ -9578,12 +9679,12 @@ blockEnclosing
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [false] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:244:13:244:28 | After ... > ... [true] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:246:9:258:9 | After switch (...) {...} | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:18:248:18 | After 0 [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:18:250:18 | After 1 [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:250:18:250:18 | After 1 [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:18:253:18 | After 2 [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:253:18:253:18 | After 2 [no-match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:240:10:240:13 | Goto |
|
||||
| cflow.cs:261:49:261:53 | Entry | cflow.cs:261:49:261:53 | Yield |
|
||||
| cflow.cs:261:49:261:53 | Exceptional Exit | cflow.cs:261:49:261:53 | Yield |
|
||||
|
||||
@@ -5714,18 +5714,22 @@
|
||||
| Patterns.cs:20:9:38:9 | After switch (...) {...} | Patterns.cs:40:9:42:9 | switch (...) {...} | |
|
||||
| Patterns.cs:20:9:38:9 | switch (...) {...} | Patterns.cs:20:17:20:17 | access to local variable o | |
|
||||
| Patterns.cs:20:17:20:17 | access to local variable o | Patterns.cs:22:13:22:23 | case ...: | |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:22:18:22:22 | "xyz" | |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [match] | Patterns.cs:23:17:23:22 | Before break; | |
|
||||
| Patterns.cs:22:13:22:23 | After case ...: [no-match] | Patterns.cs:24:13:24:36 | case ...: | |
|
||||
| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:13:22:23 | After case ...: [match] | match |
|
||||
| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:13:22:23 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:23:17:23:22 | Before break; | |
|
||||
| Patterns.cs:22:13:22:23 | case ...: | Patterns.cs:22:18:22:22 | "xyz" | |
|
||||
| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:22:18:22:22 | After "xyz" [match] | match |
|
||||
| Patterns.cs:22:18:22:22 | "xyz" | Patterns.cs:22:18:22:22 | After "xyz" [no-match] | no-match |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [match] | Patterns.cs:22:13:22:23 | After case ...: [match] | match |
|
||||
| Patterns.cs:22:18:22:22 | After "xyz" [no-match] | Patterns.cs:22:13:22:23 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:23:17:23:22 | Before break; | Patterns.cs:23:17:23:22 | break; | |
|
||||
| Patterns.cs:23:17:23:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:18:24:23 | Int32 i2 | |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [match] | Patterns.cs:24:30:24:35 | Before ... > ... | |
|
||||
| Patterns.cs:24:13:24:36 | After case ...: [no-match] | Patterns.cs:27:13:27:24 | case ...: | |
|
||||
| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [match] | match |
|
||||
| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:13:24:36 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:30:24:35 | Before ... > ... | |
|
||||
| Patterns.cs:24:13:24:36 | case ...: | Patterns.cs:24:18:24:23 | Int32 i2 | |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [match] | Patterns.cs:24:13:24:36 | After case ...: [match] | match |
|
||||
| Patterns.cs:24:18:24:23 | After Int32 i2 [no-match] | Patterns.cs:24:13:24:36 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:18:24:23 | After Int32 i2 [match] | match |
|
||||
| Patterns.cs:24:18:24:23 | Int32 i2 | Patterns.cs:24:18:24:23 | After Int32 i2 [no-match] | no-match |
|
||||
| Patterns.cs:24:30:24:31 | access to local variable i2 | Patterns.cs:24:35:24:35 | 0 | |
|
||||
| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [false] | false |
|
||||
| Patterns.cs:24:30:24:35 | ... > ... | Patterns.cs:24:30:24:35 | After ... > ... [true] | true |
|
||||
@@ -5748,11 +5752,13 @@
|
||||
| Patterns.cs:25:47:25:48 | access to local variable i2 | Patterns.cs:25:46:25:49 | {...} | |
|
||||
| Patterns.cs:26:17:26:22 | Before break; | Patterns.cs:26:17:26:22 | break; | |
|
||||
| Patterns.cs:26:17:26:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:27:18:27:23 | Int32 i3 | |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [match] | Patterns.cs:28:17:28:47 | ...; | |
|
||||
| Patterns.cs:27:13:27:24 | After case ...: [no-match] | Patterns.cs:30:13:30:27 | case ...: | |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [match] | match |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:13:27:24 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:28:17:28:47 | ...; | |
|
||||
| Patterns.cs:27:13:27:24 | case ...: | Patterns.cs:27:18:27:23 | Int32 i3 | |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [match] | Patterns.cs:27:13:27:24 | After case ...: [match] | match |
|
||||
| Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | Patterns.cs:27:13:27:24 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:27:18:27:23 | After Int32 i3 [match] | match |
|
||||
| Patterns.cs:27:18:27:23 | Int32 i3 | Patterns.cs:27:18:27:23 | After Int32 i3 [no-match] | no-match |
|
||||
| Patterns.cs:28:17:28:46 | After call to method WriteLine | Patterns.cs:28:17:28:47 | After ...; | |
|
||||
| Patterns.cs:28:17:28:46 | Before call to method WriteLine | Patterns.cs:28:35:28:45 | Before $"..." | |
|
||||
| Patterns.cs:28:17:28:46 | call to method WriteLine | Patterns.cs:28:17:28:46 | After call to method WriteLine | |
|
||||
@@ -5768,11 +5774,13 @@
|
||||
| Patterns.cs:28:42:28:43 | access to local variable i3 | Patterns.cs:28:41:28:44 | {...} | |
|
||||
| Patterns.cs:29:17:29:22 | Before break; | Patterns.cs:29:17:29:22 | break; | |
|
||||
| Patterns.cs:29:17:29:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:30:18:30:26 | String s2 | |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [match] | Patterns.cs:31:17:31:50 | ...; | |
|
||||
| Patterns.cs:30:13:30:27 | After case ...: [no-match] | Patterns.cs:33:13:33:24 | case ...: | |
|
||||
| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [match] | match |
|
||||
| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:13:30:27 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:31:17:31:50 | ...; | |
|
||||
| Patterns.cs:30:13:30:27 | case ...: | Patterns.cs:30:18:30:26 | String s2 | |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [match] | Patterns.cs:30:13:30:27 | After case ...: [match] | match |
|
||||
| Patterns.cs:30:18:30:26 | After String s2 [no-match] | Patterns.cs:30:13:30:27 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:30:18:30:26 | After String s2 [match] | match |
|
||||
| Patterns.cs:30:18:30:26 | String s2 | Patterns.cs:30:18:30:26 | After String s2 [no-match] | no-match |
|
||||
| Patterns.cs:31:17:31:49 | After call to method WriteLine | Patterns.cs:31:17:31:50 | After ...; | |
|
||||
| Patterns.cs:31:17:31:49 | Before call to method WriteLine | Patterns.cs:31:35:31:48 | Before $"..." | |
|
||||
| Patterns.cs:31:17:31:49 | call to method WriteLine | Patterns.cs:31:17:31:49 | After call to method WriteLine | |
|
||||
@@ -5788,11 +5796,13 @@
|
||||
| Patterns.cs:31:45:31:46 | access to local variable s2 | Patterns.cs:31:44:31:47 | {...} | |
|
||||
| Patterns.cs:32:17:32:22 | Before break; | Patterns.cs:32:17:32:22 | break; | |
|
||||
| Patterns.cs:32:17:32:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:33:18:33:23 | Object v2 | |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [match] | Patterns.cs:34:17:34:22 | Before break; | |
|
||||
| Patterns.cs:33:13:33:24 | After case ...: [no-match] | Patterns.cs:35:13:35:20 | default: | |
|
||||
| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [match] | match |
|
||||
| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:13:33:24 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:34:17:34:22 | Before break; | |
|
||||
| Patterns.cs:33:13:33:24 | case ...: | Patterns.cs:33:18:33:23 | Object v2 | |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [match] | Patterns.cs:33:13:33:24 | After case ...: [match] | match |
|
||||
| Patterns.cs:33:18:33:23 | After Object v2 [no-match] | Patterns.cs:33:13:33:24 | After case ...: [no-match] | no-match |
|
||||
| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:33:18:33:23 | After Object v2 [match] | match |
|
||||
| Patterns.cs:33:18:33:23 | Object v2 | Patterns.cs:33:18:33:23 | After Object v2 [no-match] | no-match |
|
||||
| Patterns.cs:34:17:34:22 | Before break; | Patterns.cs:34:17:34:22 | break; | |
|
||||
| Patterns.cs:34:17:34:22 | break; | Patterns.cs:20:9:38:9 | After switch (...) {...} | break |
|
||||
| Patterns.cs:35:13:35:20 | After default: [match] | Patterns.cs:36:17:36:52 | ...; | |
|
||||
@@ -5881,18 +5891,20 @@
|
||||
| Patterns.cs:58:16:58:16 | access to parameter i | Patterns.cs:60:13:60:28 | ... => ... | |
|
||||
| Patterns.cs:58:16:62:9 | ... switch { ... } | Patterns.cs:58:16:58:16 | access to parameter i | |
|
||||
| Patterns.cs:58:16:62:9 | After ... switch { ... } | Patterns.cs:58:9:62:10 | return ...; | |
|
||||
| Patterns.cs:60:13:60:17 | After not ... | Patterns.cs:60:22:60:28 | "not 1" | |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [match] | Patterns.cs:60:13:60:28 | After ... => ... [match] | match |
|
||||
| Patterns.cs:60:13:60:17 | After not ... [no-match] | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:60:13:60:17 | Before not ... | Patterns.cs:60:17:60:17 | 1 | |
|
||||
| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:13:60:17 | After not ... | |
|
||||
| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | After ... => ... [match] | match |
|
||||
| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:28 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:13:60:17 | Before not ... | |
|
||||
| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:13:60:17 | After not ... [match] | match |
|
||||
| Patterns.cs:60:13:60:17 | not ... | Patterns.cs:60:13:60:17 | After not ... [no-match] | no-match |
|
||||
| Patterns.cs:60:13:60:28 | ... => ... | Patterns.cs:60:13:60:17 | Before not ... | |
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [match] | Patterns.cs:60:22:60:28 | "not 1" | |
|
||||
| Patterns.cs:60:13:60:28 | After ... => ... [no-match] | Patterns.cs:61:13:61:24 | ... => ... | |
|
||||
| Patterns.cs:60:17:60:17 | 1 | Patterns.cs:60:13:60:17 | not ... | |
|
||||
| Patterns.cs:60:22:60:28 | "not 1" | Patterns.cs:58:16:62:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:18:61:24 | "other" | |
|
||||
| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:13:61:24 | After ... => ... [match] | match |
|
||||
| Patterns.cs:61:13:61:24 | After ... => ... [match] | Patterns.cs:61:13:61:13 | _ | |
|
||||
| Patterns.cs:61:13:61:13 | After _ [match] | Patterns.cs:61:13:61:24 | After ... => ... [match] | match |
|
||||
| Patterns.cs:61:13:61:13 | _ | Patterns.cs:61:13:61:13 | After _ [match] | match |
|
||||
| Patterns.cs:61:13:61:24 | ... => ... | Patterns.cs:61:13:61:13 | _ | |
|
||||
| Patterns.cs:61:13:61:24 | After ... => ... [match] | Patterns.cs:61:18:61:24 | "other" | |
|
||||
| Patterns.cs:61:18:61:24 | "other" | Patterns.cs:58:16:62:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:65:26:65:27 | Entry | Patterns.cs:66:5:72:5 | {...} | |
|
||||
| Patterns.cs:65:26:65:27 | Normal Exit | Patterns.cs:65:26:65:27 | Exit | |
|
||||
@@ -5902,19 +5914,22 @@
|
||||
| Patterns.cs:67:16:67:16 | 2 | Patterns.cs:69:13:69:33 | ... => ... | |
|
||||
| Patterns.cs:67:16:71:9 | ... switch { ... } | Patterns.cs:67:16:67:16 | 2 | |
|
||||
| Patterns.cs:67:16:71:9 | After ... switch { ... } | Patterns.cs:67:9:71:10 | return ...; | |
|
||||
| Patterns.cs:69:13:69:17 | After not ... | Patterns.cs:69:22:69:33 | "impossible" | |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [match] | Patterns.cs:69:13:69:33 | After ... => ... [match] | match |
|
||||
| Patterns.cs:69:13:69:17 | After not ... [no-match] | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:69:13:69:17 | Before not ... | Patterns.cs:69:17:69:17 | 2 | |
|
||||
| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:13:69:17 | After not ... | |
|
||||
| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | After ... => ... [match] | match |
|
||||
| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:33 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:13:69:17 | Before not ... | |
|
||||
| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:13:69:17 | After not ... [match] | match |
|
||||
| Patterns.cs:69:13:69:17 | not ... | Patterns.cs:69:13:69:17 | After not ... [no-match] | no-match |
|
||||
| Patterns.cs:69:13:69:33 | ... => ... | Patterns.cs:69:13:69:17 | Before not ... | |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [match] | Patterns.cs:69:22:69:33 | "impossible" | |
|
||||
| Patterns.cs:69:13:69:33 | After ... => ... [no-match] | Patterns.cs:70:13:70:27 | ... => ... | |
|
||||
| Patterns.cs:69:17:69:17 | 2 | Patterns.cs:69:13:69:17 | not ... | |
|
||||
| Patterns.cs:69:22:69:33 | "impossible" | Patterns.cs:67:16:71:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:18:70:27 | "possible" | |
|
||||
| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | After ... => ... [match] | match |
|
||||
| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:13:70:13 | 2 | |
|
||||
| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:13 | After 2 [match] | match |
|
||||
| Patterns.cs:70:13:70:13 | 2 | Patterns.cs:70:13:70:13 | After 2 [no-match] | no-match |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [match] | Patterns.cs:70:13:70:27 | After ... => ... [match] | match |
|
||||
| Patterns.cs:70:13:70:13 | After 2 [no-match] | Patterns.cs:70:13:70:27 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:70:13:70:27 | ... => ... | Patterns.cs:70:13:70:13 | 2 | |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [match] | Patterns.cs:70:18:70:27 | "possible" | |
|
||||
| Patterns.cs:70:13:70:27 | After ... => ... [no-match] | Patterns.cs:67:16:71:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:70:18:70:27 | "possible" | Patterns.cs:67:16:71:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:74:26:74:27 | Entry | Patterns.cs:74:33:74:33 | i | |
|
||||
@@ -5926,33 +5941,38 @@
|
||||
| Patterns.cs:76:16:76:16 | access to parameter i | Patterns.cs:78:13:78:24 | ... => ... | |
|
||||
| Patterns.cs:76:16:82:9 | ... switch { ... } | Patterns.cs:76:16:76:16 | access to parameter i | |
|
||||
| Patterns.cs:76:16:82:9 | After ... switch { ... } | Patterns.cs:76:9:82:10 | return ...; | |
|
||||
| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:13:78:15 | After > ... | |
|
||||
| Patterns.cs:78:13:78:15 | After > ... | Patterns.cs:78:20:78:24 | "> 1" | |
|
||||
| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:13:78:15 | After > ... [match] | match |
|
||||
| Patterns.cs:78:13:78:15 | > ... | Patterns.cs:78:13:78:15 | After > ... [no-match] | no-match |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [match] | Patterns.cs:78:13:78:24 | After ... => ... [match] | match |
|
||||
| Patterns.cs:78:13:78:15 | After > ... [no-match] | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:78:13:78:15 | Before > ... | Patterns.cs:78:15:78:15 | 1 | |
|
||||
| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | After ... => ... [match] | match |
|
||||
| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:24 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:13:78:15 | Before > ... | |
|
||||
| Patterns.cs:78:13:78:24 | ... => ... | Patterns.cs:78:13:78:15 | Before > ... | |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [match] | Patterns.cs:78:20:78:24 | "> 1" | |
|
||||
| Patterns.cs:78:13:78:24 | After ... => ... [no-match] | Patterns.cs:79:13:79:24 | ... => ... | |
|
||||
| Patterns.cs:78:15:78:15 | 1 | Patterns.cs:78:13:78:15 | > ... | |
|
||||
| Patterns.cs:78:20:78:24 | "> 1" | Patterns.cs:76:16:82:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:13:79:15 | After < ... | |
|
||||
| Patterns.cs:79:13:79:15 | After < ... | Patterns.cs:79:20:79:24 | "< 0" | |
|
||||
| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:13:79:15 | After < ... [match] | match |
|
||||
| Patterns.cs:79:13:79:15 | < ... | Patterns.cs:79:13:79:15 | After < ... [no-match] | no-match |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [match] | Patterns.cs:79:13:79:24 | After ... => ... [match] | match |
|
||||
| Patterns.cs:79:13:79:15 | After < ... [no-match] | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:79:13:79:15 | Before < ... | Patterns.cs:79:15:79:15 | 0 | |
|
||||
| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | After ... => ... [match] | match |
|
||||
| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:24 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:13:79:15 | Before < ... | |
|
||||
| Patterns.cs:79:13:79:24 | ... => ... | Patterns.cs:79:13:79:15 | Before < ... | |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [match] | Patterns.cs:79:20:79:24 | "< 0" | |
|
||||
| Patterns.cs:79:13:79:24 | After ... => ... [no-match] | Patterns.cs:80:13:80:20 | ... => ... | |
|
||||
| Patterns.cs:79:15:79:15 | 0 | Patterns.cs:79:13:79:15 | < ... | |
|
||||
| Patterns.cs:79:20:79:24 | "< 0" | Patterns.cs:76:16:82:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:18:80:20 | "1" | |
|
||||
| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | After ... => ... [match] | match |
|
||||
| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:13:80:13 | 1 | |
|
||||
| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | After 1 [match] | match |
|
||||
| Patterns.cs:80:13:80:13 | 1 | Patterns.cs:80:13:80:13 | After 1 [no-match] | no-match |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [match] | Patterns.cs:80:13:80:20 | After ... => ... [match] | match |
|
||||
| Patterns.cs:80:13:80:13 | After 1 [no-match] | Patterns.cs:80:13:80:20 | After ... => ... [no-match] | no-match |
|
||||
| Patterns.cs:80:13:80:20 | ... => ... | Patterns.cs:80:13:80:13 | 1 | |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [match] | Patterns.cs:80:18:80:20 | "1" | |
|
||||
| Patterns.cs:80:13:80:20 | After ... => ... [no-match] | Patterns.cs:81:13:81:20 | ... => ... | |
|
||||
| Patterns.cs:80:18:80:20 | "1" | Patterns.cs:76:16:82:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:18:81:20 | "0" | |
|
||||
| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:13:81:20 | After ... => ... [match] | match |
|
||||
| Patterns.cs:81:13:81:20 | After ... => ... [match] | Patterns.cs:81:13:81:13 | _ | |
|
||||
| Patterns.cs:81:13:81:13 | After _ [match] | Patterns.cs:81:13:81:20 | After ... => ... [match] | match |
|
||||
| Patterns.cs:81:13:81:13 | _ | Patterns.cs:81:13:81:13 | After _ [match] | match |
|
||||
| Patterns.cs:81:13:81:20 | ... => ... | Patterns.cs:81:13:81:13 | _ | |
|
||||
| Patterns.cs:81:13:81:20 | After ... => ... [match] | Patterns.cs:81:18:81:20 | "0" | |
|
||||
| Patterns.cs:81:18:81:20 | "0" | Patterns.cs:76:16:82:9 | After ... switch { ... } | |
|
||||
| Patterns.cs:85:26:85:27 | Entry | Patterns.cs:85:33:85:33 | i | |
|
||||
| Patterns.cs:85:26:85:27 | Normal Exit | Patterns.cs:85:26:85:27 | Exit | |
|
||||
@@ -6291,35 +6311,43 @@
|
||||
| Switch.cs:11:5:33:5 | {...} | Switch.cs:12:9:32:9 | switch (...) {...} | |
|
||||
| Switch.cs:12:9:32:9 | switch (...) {...} | Switch.cs:12:17:12:17 | access to parameter o | |
|
||||
| Switch.cs:12:17:12:17 | access to parameter o | Switch.cs:14:13:14:21 | case ...: | |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:14:18:14:20 | "a" | |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [match] | Switch.cs:15:17:15:23 | Before return ...; | |
|
||||
| Switch.cs:14:13:14:21 | After case ...: [no-match] | Switch.cs:16:13:16:19 | case ...: | |
|
||||
| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:13:14:21 | After case ...: [match] | match |
|
||||
| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:13:14:21 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:14:18:14:20 | "a" | Switch.cs:15:17:15:23 | Before return ...; | |
|
||||
| Switch.cs:14:13:14:21 | case ...: | Switch.cs:14:18:14:20 | "a" | |
|
||||
| Switch.cs:14:18:14:20 | "a" | Switch.cs:14:18:14:20 | After "a" [match] | match |
|
||||
| Switch.cs:14:18:14:20 | "a" | Switch.cs:14:18:14:20 | After "a" [no-match] | no-match |
|
||||
| Switch.cs:14:18:14:20 | After "a" [match] | Switch.cs:14:13:14:21 | After case ...: [match] | match |
|
||||
| Switch.cs:14:18:14:20 | After "a" [no-match] | Switch.cs:14:13:14:21 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:15:17:15:23 | Before return ...; | Switch.cs:15:17:15:23 | return ...; | |
|
||||
| Switch.cs:15:17:15:23 | return ...; | Switch.cs:10:10:10:11 | Normal Exit | return |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:16:18:16:18 | 0 | |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [match] | Switch.cs:17:17:17:38 | Before throw ...; | |
|
||||
| Switch.cs:16:13:16:19 | After case ...: [no-match] | Switch.cs:18:13:18:22 | case ...: | |
|
||||
| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | After case ...: [match] | match |
|
||||
| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:13:16:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:16:18:16:18 | 0 | Switch.cs:17:17:17:38 | Before throw ...; | |
|
||||
| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:18:16:18 | 0 | |
|
||||
| Switch.cs:16:18:16:18 | 0 | Switch.cs:16:18:16:18 | After 0 [match] | match |
|
||||
| Switch.cs:16:18:16:18 | 0 | Switch.cs:16:18:16:18 | After 0 [no-match] | no-match |
|
||||
| Switch.cs:16:18:16:18 | After 0 [match] | Switch.cs:16:13:16:19 | After case ...: [match] | match |
|
||||
| Switch.cs:16:18:16:18 | After 0 [no-match] | Switch.cs:16:13:16:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:17:17:17:38 | Before throw ...; | Switch.cs:17:23:17:37 | Before object creation of type Exception | |
|
||||
| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | Exceptional Exit | exception |
|
||||
| Switch.cs:17:23:17:37 | After object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | |
|
||||
| Switch.cs:17:23:17:37 | Before object creation of type Exception | Switch.cs:17:23:17:37 | object creation of type Exception | |
|
||||
| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:23:17:37 | After object creation of type Exception | |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:18:18:18:21 | null | |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [match] | Switch.cs:19:17:19:29 | Before goto default; | |
|
||||
| Switch.cs:18:13:18:22 | After case ...: [no-match] | Switch.cs:20:13:20:23 | case ...: | |
|
||||
| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | After case ...: [match] | match |
|
||||
| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:13:18:22 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:18:18:18:21 | null | Switch.cs:19:17:19:29 | Before goto default; | |
|
||||
| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:18:18:21 | null | |
|
||||
| Switch.cs:18:18:18:21 | After null [match] | Switch.cs:18:13:18:22 | After case ...: [match] | match |
|
||||
| Switch.cs:18:18:18:21 | After null [no-match] | Switch.cs:18:13:18:22 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:18:18:18:21 | null | Switch.cs:18:18:18:21 | After null [match] | match |
|
||||
| Switch.cs:18:18:18:21 | null | Switch.cs:18:18:18:21 | After null [no-match] | no-match |
|
||||
| Switch.cs:19:17:19:29 | Before goto default; | Switch.cs:19:17:19:29 | goto default; | |
|
||||
| Switch.cs:19:17:19:29 | goto default; | Switch.cs:30:13:30:20 | After default: [match] | goto |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:20:18:20:22 | Int32 i | |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [match] | Switch.cs:21:17:22:27 | if (...) ... | |
|
||||
| Switch.cs:20:13:20:23 | After case ...: [no-match] | Switch.cs:24:13:24:56 | case ...: | |
|
||||
| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | After case ...: [match] | match |
|
||||
| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:13:20:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:21:17:22:27 | if (...) ... | |
|
||||
| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:18:20:22 | Int32 i | |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [match] | Switch.cs:20:13:20:23 | After case ...: [match] | match |
|
||||
| Switch.cs:20:18:20:22 | After Int32 i [no-match] | Switch.cs:20:13:20:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:20:18:20:22 | After Int32 i [match] | match |
|
||||
| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:20:18:20:22 | After Int32 i [no-match] | no-match |
|
||||
| Switch.cs:21:17:22:27 | After if (...) ... | Switch.cs:23:17:23:28 | Before goto case ...; | |
|
||||
| Switch.cs:21:17:22:27 | if (...) ... | Switch.cs:21:21:21:29 | Before ... == ... | |
|
||||
| Switch.cs:21:21:21:21 | access to parameter o | Switch.cs:21:26:21:29 | null | |
|
||||
@@ -6334,11 +6362,13 @@
|
||||
| Switch.cs:23:17:23:28 | Before goto case ...; | Switch.cs:23:27:23:27 | 0 | |
|
||||
| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:16:13:16:19 | After case ...: [match] | goto |
|
||||
| Switch.cs:23:27:23:27 | 0 | Switch.cs:23:17:23:28 | goto case ...; | |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:18:24:25 | String s | |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [match] | Switch.cs:24:32:24:55 | ... && ... | |
|
||||
| Switch.cs:24:13:24:56 | After case ...: [no-match] | Switch.cs:27:13:27:39 | case ...: | |
|
||||
| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | After case ...: [match] | match |
|
||||
| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:13:24:56 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:24:18:24:25 | String s | Switch.cs:24:32:24:55 | ... && ... | |
|
||||
| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:18:24:25 | String s | |
|
||||
| Switch.cs:24:18:24:25 | After String s [match] | Switch.cs:24:13:24:56 | After case ...: [match] | match |
|
||||
| Switch.cs:24:18:24:25 | After String s [no-match] | Switch.cs:24:13:24:56 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:24:18:24:25 | String s | Switch.cs:24:18:24:25 | After String s [match] | match |
|
||||
| Switch.cs:24:18:24:25 | String s | Switch.cs:24:18:24:25 | After String s [no-match] | no-match |
|
||||
| Switch.cs:24:32:24:32 | access to local variable s | Switch.cs:24:32:24:39 | access to property Length | |
|
||||
| Switch.cs:24:32:24:39 | After access to property Length | Switch.cs:24:43:24:43 | 0 | |
|
||||
| Switch.cs:24:32:24:39 | Before access to property Length | Switch.cs:24:32:24:32 | access to local variable s | |
|
||||
@@ -6367,11 +6397,13 @@
|
||||
| Switch.cs:25:35:25:35 | access to local variable s | Switch.cs:25:17:25:36 | call to method WriteLine | |
|
||||
| Switch.cs:26:17:26:23 | Before return ...; | Switch.cs:26:17:26:23 | return ...; | |
|
||||
| Switch.cs:26:17:26:23 | return ...; | Switch.cs:10:10:10:11 | Normal Exit | return |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:18:27:25 | Double d | |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [match] | Switch.cs:27:32:27:38 | Before call to method Throw | |
|
||||
| Switch.cs:27:13:27:39 | After case ...: [no-match] | Switch.cs:30:13:30:20 | default: | |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [match] | match |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:13:27:39 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:32:27:38 | Before call to method Throw | |
|
||||
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | |
|
||||
| Switch.cs:27:18:27:25 | After Double d [match] | Switch.cs:27:13:27:39 | After case ...: [match] | match |
|
||||
| Switch.cs:27:18:27:25 | After Double d [no-match] | Switch.cs:27:13:27:39 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:18:27:25 | After Double d [match] | match |
|
||||
| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:18:27:25 | After Double d [no-match] | no-match |
|
||||
| Switch.cs:27:32:27:38 | Before call to method Throw | Switch.cs:27:32:27:38 | call to method Throw | |
|
||||
| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | Exceptional Exit | exception |
|
||||
| Switch.cs:28:13:28:17 | Label: | Switch.cs:29:17:29:23 | Before return ...; | |
|
||||
@@ -6395,18 +6427,22 @@
|
||||
| Switch.cs:46:9:52:9 | After switch (...) {...} | Switch.cs:45:5:53:5 | After {...} | |
|
||||
| Switch.cs:46:9:52:9 | switch (...) {...} | Switch.cs:46:17:46:17 | access to parameter o | |
|
||||
| Switch.cs:46:17:46:17 | access to parameter o | Switch.cs:48:13:48:23 | case ...: | |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:48:18:48:20 | access to type Int32 | |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [match] | Switch.cs:49:17:49:22 | Before break; | |
|
||||
| Switch.cs:48:13:48:23 | After case ...: [no-match] | Switch.cs:50:13:50:39 | case ...: | |
|
||||
| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:13:48:23 | After case ...: [match] | match |
|
||||
| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:13:48:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:49:17:49:22 | Before break; | |
|
||||
| Switch.cs:48:13:48:23 | case ...: | Switch.cs:48:18:48:20 | access to type Int32 | |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [match] | Switch.cs:48:13:48:23 | After case ...: [match] | match |
|
||||
| Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | Switch.cs:48:13:48:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:48:18:48:20 | After access to type Int32 [match] | match |
|
||||
| Switch.cs:48:18:48:20 | access to type Int32 | Switch.cs:48:18:48:20 | After access to type Int32 [no-match] | no-match |
|
||||
| Switch.cs:49:17:49:22 | Before break; | Switch.cs:49:17:49:22 | break; | |
|
||||
| Switch.cs:49:17:49:22 | break; | Switch.cs:46:9:52:9 | After switch (...) {...} | break |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:18:50:21 | access to type Boolean | |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [match] | Switch.cs:50:30:50:38 | Before ... != ... | |
|
||||
| Switch.cs:50:13:50:39 | After case ...: [no-match] | Switch.cs:46:9:52:9 | After switch (...) {...} | |
|
||||
| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | After case ...: [match] | match |
|
||||
| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:13:50:39 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:30:50:38 | Before ... != ... | |
|
||||
| Switch.cs:50:13:50:39 | case ...: | Switch.cs:50:18:50:21 | access to type Boolean | |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [match] | Switch.cs:50:13:50:39 | After case ...: [match] | match |
|
||||
| Switch.cs:50:18:50:21 | After access to type Boolean [no-match] | Switch.cs:50:13:50:39 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:18:50:21 | After access to type Boolean [match] | match |
|
||||
| Switch.cs:50:18:50:21 | access to type Boolean | Switch.cs:50:18:50:21 | After access to type Boolean [no-match] | no-match |
|
||||
| Switch.cs:50:30:50:30 | access to parameter o | Switch.cs:50:35:50:38 | null | |
|
||||
| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [false] | false |
|
||||
| Switch.cs:50:30:50:38 | ... != ... | Switch.cs:50:30:50:38 | After ... != ... [true] | true |
|
||||
@@ -6427,18 +6463,22 @@
|
||||
| Switch.cs:57:17:57:21 | After ... + ... | Switch.cs:59:13:59:19 | case ...: | |
|
||||
| Switch.cs:57:17:57:21 | Before ... + ... | Switch.cs:57:17:57:17 | 1 | |
|
||||
| Switch.cs:57:21:57:21 | 2 | Switch.cs:57:17:57:21 | ... + ... | |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:59:18:59:18 | 2 | |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [match] | Switch.cs:60:17:60:22 | Before break; | |
|
||||
| Switch.cs:59:13:59:19 | After case ...: [no-match] | Switch.cs:61:13:61:19 | case ...: | |
|
||||
| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:13:59:19 | After case ...: [match] | match |
|
||||
| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:13:59:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:59:18:59:18 | 2 | Switch.cs:60:17:60:22 | Before break; | |
|
||||
| Switch.cs:59:13:59:19 | case ...: | Switch.cs:59:18:59:18 | 2 | |
|
||||
| Switch.cs:59:18:59:18 | 2 | Switch.cs:59:18:59:18 | After 2 [match] | match |
|
||||
| Switch.cs:59:18:59:18 | 2 | Switch.cs:59:18:59:18 | After 2 [no-match] | no-match |
|
||||
| Switch.cs:59:18:59:18 | After 2 [match] | Switch.cs:59:13:59:19 | After case ...: [match] | match |
|
||||
| Switch.cs:59:18:59:18 | After 2 [no-match] | Switch.cs:59:13:59:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:60:17:60:22 | Before break; | Switch.cs:60:17:60:22 | break; | |
|
||||
| Switch.cs:60:17:60:22 | break; | Switch.cs:57:9:63:9 | After switch (...) {...} | break |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:61:18:61:18 | 3 | |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [match] | Switch.cs:62:17:62:22 | Before break; | |
|
||||
| Switch.cs:61:13:61:19 | After case ...: [no-match] | Switch.cs:57:9:63:9 | After switch (...) {...} | |
|
||||
| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | After case ...: [match] | match |
|
||||
| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:13:61:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:61:18:61:18 | 3 | Switch.cs:62:17:62:22 | Before break; | |
|
||||
| Switch.cs:61:13:61:19 | case ...: | Switch.cs:61:18:61:18 | 3 | |
|
||||
| Switch.cs:61:18:61:18 | 3 | Switch.cs:61:18:61:18 | After 3 [match] | match |
|
||||
| Switch.cs:61:18:61:18 | 3 | Switch.cs:61:18:61:18 | After 3 [no-match] | no-match |
|
||||
| Switch.cs:61:18:61:18 | After 3 [match] | Switch.cs:61:13:61:19 | After case ...: [match] | match |
|
||||
| Switch.cs:61:18:61:18 | After 3 [no-match] | Switch.cs:61:13:61:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:62:17:62:22 | Before break; | Switch.cs:62:17:62:22 | break; | |
|
||||
| Switch.cs:62:17:62:22 | break; | Switch.cs:57:9:63:9 | After switch (...) {...} | break |
|
||||
| Switch.cs:66:10:66:11 | Entry | Switch.cs:66:20:66:20 | s | |
|
||||
@@ -6452,18 +6492,22 @@
|
||||
| Switch.cs:68:17:68:25 | After (...) ... | Switch.cs:70:13:70:23 | case ...: | |
|
||||
| Switch.cs:68:17:68:25 | Before (...) ... | Switch.cs:68:25:68:25 | access to parameter s | |
|
||||
| Switch.cs:68:25:68:25 | access to parameter s | Switch.cs:68:17:68:25 | (...) ... | |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:70:18:70:20 | access to type Int32 | |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [match] | Switch.cs:71:17:71:22 | Before break; | |
|
||||
| Switch.cs:70:13:70:23 | After case ...: [no-match] | Switch.cs:72:13:72:20 | case ...: | |
|
||||
| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:13:70:23 | After case ...: [match] | match |
|
||||
| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:13:70:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:71:17:71:22 | Before break; | |
|
||||
| Switch.cs:70:13:70:23 | case ...: | Switch.cs:70:18:70:20 | access to type Int32 | |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [match] | Switch.cs:70:13:70:23 | After case ...: [match] | match |
|
||||
| Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | Switch.cs:70:13:70:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:70:18:70:20 | After access to type Int32 [match] | match |
|
||||
| Switch.cs:70:18:70:20 | access to type Int32 | Switch.cs:70:18:70:20 | After access to type Int32 [no-match] | no-match |
|
||||
| Switch.cs:71:17:71:22 | Before break; | Switch.cs:71:17:71:22 | break; | |
|
||||
| Switch.cs:71:17:71:22 | break; | Switch.cs:68:9:74:9 | After switch (...) {...} | break |
|
||||
| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:72:18:72:19 | "" | |
|
||||
| Switch.cs:72:13:72:20 | After case ...: [match] | Switch.cs:73:17:73:22 | Before break; | |
|
||||
| Switch.cs:72:13:72:20 | After case ...: [no-match] | Switch.cs:68:9:74:9 | After switch (...) {...} | |
|
||||
| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | After case ...: [match] | match |
|
||||
| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:13:72:20 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:72:18:72:19 | "" | Switch.cs:73:17:73:22 | Before break; | |
|
||||
| Switch.cs:72:13:72:20 | case ...: | Switch.cs:72:18:72:19 | "" | |
|
||||
| Switch.cs:72:18:72:19 | "" | Switch.cs:72:18:72:19 | After "" [match] | match |
|
||||
| Switch.cs:72:18:72:19 | "" | Switch.cs:72:18:72:19 | After "" [no-match] | no-match |
|
||||
| Switch.cs:72:18:72:19 | After "" [match] | Switch.cs:72:13:72:20 | After case ...: [match] | match |
|
||||
| Switch.cs:72:18:72:19 | After "" [no-match] | Switch.cs:72:13:72:20 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:73:17:73:22 | Before break; | Switch.cs:73:17:73:22 | break; | |
|
||||
| Switch.cs:73:17:73:22 | break; | Switch.cs:68:9:74:9 | After switch (...) {...} | break |
|
||||
| Switch.cs:77:10:77:11 | Entry | Switch.cs:77:17:77:17 | i | |
|
||||
@@ -6474,19 +6518,23 @@
|
||||
| Switch.cs:79:9:87:9 | After switch (...) {...} | Switch.cs:88:9:88:21 | Before return ...; | |
|
||||
| Switch.cs:79:9:87:9 | switch (...) {...} | Switch.cs:79:17:79:17 | access to parameter i | |
|
||||
| Switch.cs:79:17:79:17 | access to parameter i | Switch.cs:81:13:81:19 | case ...: | |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:81:18:81:18 | 1 | |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [match] | Switch.cs:82:17:82:28 | Before return ...; | |
|
||||
| Switch.cs:81:13:81:19 | After case ...: [no-match] | Switch.cs:83:13:83:19 | case ...: | |
|
||||
| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:13:81:19 | After case ...: [match] | match |
|
||||
| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:13:81:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:81:18:81:18 | 1 | Switch.cs:82:17:82:28 | Before return ...; | |
|
||||
| Switch.cs:81:13:81:19 | case ...: | Switch.cs:81:18:81:18 | 1 | |
|
||||
| Switch.cs:81:18:81:18 | 1 | Switch.cs:81:18:81:18 | After 1 [match] | match |
|
||||
| Switch.cs:81:18:81:18 | 1 | Switch.cs:81:18:81:18 | After 1 [no-match] | no-match |
|
||||
| Switch.cs:81:18:81:18 | After 1 [match] | Switch.cs:81:13:81:19 | After case ...: [match] | match |
|
||||
| Switch.cs:81:18:81:18 | After 1 [no-match] | Switch.cs:81:13:81:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:82:17:82:28 | Before return ...; | Switch.cs:82:24:82:27 | true | |
|
||||
| Switch.cs:82:17:82:28 | return ...; | Switch.cs:77:10:77:11 | Normal Exit | return |
|
||||
| Switch.cs:82:24:82:27 | true | Switch.cs:82:17:82:28 | return ...; | |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:83:18:83:18 | 2 | |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [match] | Switch.cs:84:17:85:26 | if (...) ... | |
|
||||
| Switch.cs:83:13:83:19 | After case ...: [no-match] | Switch.cs:79:9:87:9 | After switch (...) {...} | |
|
||||
| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | After case ...: [match] | match |
|
||||
| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:13:83:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:84:17:85:26 | if (...) ... | |
|
||||
| Switch.cs:83:13:83:19 | case ...: | Switch.cs:83:18:83:18 | 2 | |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:83:18:83:18 | After 2 [match] | match |
|
||||
| Switch.cs:83:18:83:18 | 2 | Switch.cs:83:18:83:18 | After 2 [no-match] | no-match |
|
||||
| Switch.cs:83:18:83:18 | After 2 [match] | Switch.cs:83:13:83:19 | After case ...: [match] | match |
|
||||
| Switch.cs:83:18:83:18 | After 2 [no-match] | Switch.cs:83:13:83:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:84:17:85:26 | After if (...) ... | Switch.cs:86:17:86:28 | Before return ...; | |
|
||||
| Switch.cs:84:17:85:26 | if (...) ... | Switch.cs:84:21:84:25 | Before ... > ... | |
|
||||
| Switch.cs:84:21:84:21 | access to parameter j | Switch.cs:84:25:84:25 | 2 | |
|
||||
@@ -6511,11 +6559,13 @@
|
||||
| Switch.cs:93:9:97:9 | After switch (...) {...} | Switch.cs:98:9:98:21 | Before return ...; | |
|
||||
| Switch.cs:93:9:97:9 | switch (...) {...} | Switch.cs:93:17:93:17 | access to parameter o | |
|
||||
| Switch.cs:93:17:93:17 | access to parameter o | Switch.cs:95:13:95:23 | case ...: | |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:95:18:95:20 | access to type Int32 | |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [match] | Switch.cs:96:17:96:28 | Before return ...; | |
|
||||
| Switch.cs:95:13:95:23 | After case ...: [no-match] | Switch.cs:93:9:97:9 | After switch (...) {...} | |
|
||||
| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:13:95:23 | After case ...: [match] | match |
|
||||
| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:13:95:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:96:17:96:28 | Before return ...; | |
|
||||
| Switch.cs:95:13:95:23 | case ...: | Switch.cs:95:18:95:20 | access to type Int32 | |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [match] | Switch.cs:95:13:95:23 | After case ...: [match] | match |
|
||||
| Switch.cs:95:18:95:20 | After access to type Int32 [no-match] | Switch.cs:95:13:95:23 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:95:18:95:20 | After access to type Int32 [match] | match |
|
||||
| Switch.cs:95:18:95:20 | access to type Int32 | Switch.cs:95:18:95:20 | After access to type Int32 [no-match] | no-match |
|
||||
| Switch.cs:96:17:96:28 | Before return ...; | Switch.cs:96:24:96:27 | true | |
|
||||
| Switch.cs:96:17:96:28 | return ...; | Switch.cs:91:10:91:11 | Normal Exit | return |
|
||||
| Switch.cs:96:24:96:27 | true | Switch.cs:96:17:96:28 | return ...; | |
|
||||
@@ -6535,19 +6585,23 @@
|
||||
| Switch.cs:103:17:103:25 | After access to property Length | Switch.cs:105:13:105:19 | case ...: | |
|
||||
| Switch.cs:103:17:103:25 | Before access to property Length | Switch.cs:103:17:103:17 | access to parameter s | |
|
||||
| Switch.cs:103:17:103:25 | access to property Length | Switch.cs:103:17:103:25 | After access to property Length | |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:18:105:18 | 0 | |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [match] | Switch.cs:105:21:105:29 | Before return ...; | |
|
||||
| Switch.cs:105:13:105:19 | After case ...: [no-match] | Switch.cs:106:13:106:19 | case ...: | |
|
||||
| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | After case ...: [match] | match |
|
||||
| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:13:105:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:21:105:29 | Before return ...; | |
|
||||
| Switch.cs:105:13:105:19 | case ...: | Switch.cs:105:18:105:18 | 0 | |
|
||||
| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:18:105:18 | After 0 [match] | match |
|
||||
| Switch.cs:105:18:105:18 | 0 | Switch.cs:105:18:105:18 | After 0 [no-match] | no-match |
|
||||
| Switch.cs:105:18:105:18 | After 0 [match] | Switch.cs:105:13:105:19 | After case ...: [match] | match |
|
||||
| Switch.cs:105:18:105:18 | After 0 [no-match] | Switch.cs:105:13:105:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:105:21:105:29 | Before return ...; | Switch.cs:105:28:105:28 | 0 | |
|
||||
| Switch.cs:105:21:105:29 | return ...; | Switch.cs:101:9:101:10 | Normal Exit | return |
|
||||
| Switch.cs:105:28:105:28 | 0 | Switch.cs:105:21:105:29 | return ...; | |
|
||||
| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:18:106:18 | 1 | |
|
||||
| Switch.cs:106:13:106:19 | After case ...: [match] | Switch.cs:106:21:106:29 | Before return ...; | |
|
||||
| Switch.cs:106:13:106:19 | After case ...: [no-match] | Switch.cs:103:9:107:9 | After switch (...) {...} | |
|
||||
| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | After case ...: [match] | match |
|
||||
| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:13:106:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:21:106:29 | Before return ...; | |
|
||||
| Switch.cs:106:13:106:19 | case ...: | Switch.cs:106:18:106:18 | 1 | |
|
||||
| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:18:106:18 | After 1 [match] | match |
|
||||
| Switch.cs:106:18:106:18 | 1 | Switch.cs:106:18:106:18 | After 1 [no-match] | no-match |
|
||||
| Switch.cs:106:18:106:18 | After 1 [match] | Switch.cs:106:13:106:19 | After case ...: [match] | match |
|
||||
| Switch.cs:106:18:106:18 | After 1 [no-match] | Switch.cs:106:13:106:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:106:21:106:29 | Before return ...; | Switch.cs:106:28:106:28 | 1 | |
|
||||
| Switch.cs:106:21:106:29 | return ...; | Switch.cs:101:9:101:10 | Normal Exit | return |
|
||||
| Switch.cs:106:28:106:28 | 1 | Switch.cs:106:21:106:29 | return ...; | |
|
||||
@@ -6574,11 +6628,13 @@
|
||||
| Switch.cs:115:17:115:24 | After access to property Length | Switch.cs:117:13:117:35 | case ...: | |
|
||||
| Switch.cs:115:17:115:24 | Before access to property Length | Switch.cs:115:17:115:17 | access to parameter s | |
|
||||
| Switch.cs:115:17:115:24 | access to property Length | Switch.cs:115:17:115:24 | After access to property Length | |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:18:117:18 | 3 | |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [match] | Switch.cs:117:25:117:34 | Before ... == ... | |
|
||||
| Switch.cs:117:13:117:35 | After case ...: [no-match] | Switch.cs:118:13:118:34 | case ...: | |
|
||||
| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:13:117:35 | After case ...: [match] | match |
|
||||
| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:13:117:35 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:25:117:34 | Before ... == ... | |
|
||||
| Switch.cs:117:13:117:35 | case ...: | Switch.cs:117:18:117:18 | 3 | |
|
||||
| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:18:117:18 | After 3 [match] | match |
|
||||
| Switch.cs:117:18:117:18 | 3 | Switch.cs:117:18:117:18 | After 3 [no-match] | no-match |
|
||||
| Switch.cs:117:18:117:18 | After 3 [match] | Switch.cs:117:13:117:35 | After case ...: [match] | match |
|
||||
| Switch.cs:117:18:117:18 | After 3 [no-match] | Switch.cs:117:13:117:35 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:117:25:117:25 | access to parameter s | Switch.cs:117:30:117:34 | "foo" | |
|
||||
| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [false] | false |
|
||||
| Switch.cs:117:25:117:34 | ... == ... | Switch.cs:117:25:117:34 | After ... == ... [true] | true |
|
||||
@@ -6589,11 +6645,13 @@
|
||||
| Switch.cs:117:37:117:45 | Before return ...; | Switch.cs:117:44:117:44 | 1 | |
|
||||
| Switch.cs:117:37:117:45 | return ...; | Switch.cs:113:9:113:11 | Normal Exit | return |
|
||||
| Switch.cs:117:44:117:44 | 1 | Switch.cs:117:37:117:45 | return ...; | |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:18:118:18 | 2 | |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [match] | Switch.cs:118:25:118:33 | Before ... == ... | |
|
||||
| Switch.cs:118:13:118:34 | After case ...: [no-match] | Switch.cs:115:9:119:9 | After switch (...) {...} | |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [match] | match |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:13:118:34 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:25:118:33 | Before ... == ... | |
|
||||
| Switch.cs:118:13:118:34 | case ...: | Switch.cs:118:18:118:18 | 2 | |
|
||||
| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:18:118:18 | After 2 [match] | match |
|
||||
| Switch.cs:118:18:118:18 | 2 | Switch.cs:118:18:118:18 | After 2 [no-match] | no-match |
|
||||
| Switch.cs:118:18:118:18 | After 2 [match] | Switch.cs:118:13:118:34 | After case ...: [match] | match |
|
||||
| Switch.cs:118:18:118:18 | After 2 [no-match] | Switch.cs:118:13:118:34 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:118:25:118:25 | access to parameter s | Switch.cs:118:30:118:33 | "fu" | |
|
||||
| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [false] | false |
|
||||
| Switch.cs:118:25:118:33 | ... == ... | Switch.cs:118:25:118:33 | After ... == ... [true] | true |
|
||||
@@ -6621,16 +6679,19 @@
|
||||
| Switch.cs:125:13:125:48 | ... switch { ... } | Switch.cs:125:13:125:13 | access to parameter o | |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [false] | Switch.cs:125:9:126:19 | After if (...) ... | |
|
||||
| Switch.cs:125:13:125:48 | After ... switch { ... } [true] | Switch.cs:126:13:126:19 | Before return ...; | |
|
||||
| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:34:125:34 | access to local variable b | |
|
||||
| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | After ... => ... [match] | match |
|
||||
| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:34 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:24:125:29 | Boolean b | |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [match] | Switch.cs:125:24:125:34 | After ... => ... [match] | match |
|
||||
| Switch.cs:125:24:125:29 | After Boolean b [no-match] | Switch.cs:125:24:125:34 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:24:125:29 | After Boolean b [match] | match |
|
||||
| Switch.cs:125:24:125:29 | Boolean b | Switch.cs:125:24:125:29 | After Boolean b [no-match] | no-match |
|
||||
| Switch.cs:125:24:125:34 | ... => ... | Switch.cs:125:24:125:29 | Boolean b | |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [match] | Switch.cs:125:34:125:34 | access to local variable b | |
|
||||
| Switch.cs:125:24:125:34 | After ... => ... [no-match] | Switch.cs:125:37:125:46 | ... => ... | |
|
||||
| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | false |
|
||||
| Switch.cs:125:34:125:34 | access to local variable b | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | true |
|
||||
| Switch.cs:125:37:125:37 | _ | Switch.cs:125:42:125:46 | false | |
|
||||
| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:46 | After ... => ... [match] | match |
|
||||
| Switch.cs:125:37:125:46 | After ... => ... [match] | Switch.cs:125:37:125:37 | _ | |
|
||||
| Switch.cs:125:37:125:37 | After _ [match] | Switch.cs:125:37:125:46 | After ... => ... [match] | match |
|
||||
| Switch.cs:125:37:125:37 | _ | Switch.cs:125:37:125:37 | After _ [match] | match |
|
||||
| Switch.cs:125:37:125:46 | ... => ... | Switch.cs:125:37:125:37 | _ | |
|
||||
| Switch.cs:125:37:125:46 | After ... => ... [match] | Switch.cs:125:42:125:46 | false | |
|
||||
| Switch.cs:125:42:125:46 | false | Switch.cs:125:13:125:48 | After ... switch { ... } [false] | false |
|
||||
| Switch.cs:125:42:125:46 | false | Switch.cs:125:13:125:48 | After ... switch { ... } [true] | true |
|
||||
| Switch.cs:126:13:126:19 | Before return ...; | Switch.cs:126:13:126:19 | return ...; | |
|
||||
@@ -6648,16 +6709,19 @@
|
||||
| Switch.cs:131:17:131:53 | ... switch { ... } | Switch.cs:131:17:131:17 | access to parameter o | |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | Switch.cs:131:16:131:66 | call to method ToString | |
|
||||
| Switch.cs:131:17:131:53 | After ... switch { ... } [null] | Switch.cs:131:16:131:66 | After call to method ToString | |
|
||||
| Switch.cs:131:28:131:35 | String s | Switch.cs:131:40:131:40 | access to local variable s | |
|
||||
| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | After ... => ... [match] | match |
|
||||
| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:40 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:28:131:35 | String s | |
|
||||
| Switch.cs:131:28:131:35 | After String s [match] | Switch.cs:131:28:131:40 | After ... => ... [match] | match |
|
||||
| Switch.cs:131:28:131:35 | After String s [no-match] | Switch.cs:131:28:131:40 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:131:28:131:35 | String s | Switch.cs:131:28:131:35 | After String s [match] | match |
|
||||
| Switch.cs:131:28:131:35 | String s | Switch.cs:131:28:131:35 | After String s [no-match] | no-match |
|
||||
| Switch.cs:131:28:131:40 | ... => ... | Switch.cs:131:28:131:35 | String s | |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [match] | Switch.cs:131:40:131:40 | access to local variable s | |
|
||||
| Switch.cs:131:28:131:40 | After ... => ... [no-match] | Switch.cs:131:43:131:51 | ... => ... | |
|
||||
| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | non-null |
|
||||
| Switch.cs:131:40:131:40 | access to local variable s | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | null |
|
||||
| Switch.cs:131:43:131:43 | _ | Switch.cs:131:48:131:51 | null | |
|
||||
| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:51 | After ... => ... [match] | match |
|
||||
| Switch.cs:131:43:131:51 | After ... => ... [match] | Switch.cs:131:43:131:43 | _ | |
|
||||
| Switch.cs:131:43:131:43 | After _ [match] | Switch.cs:131:43:131:51 | After ... => ... [match] | match |
|
||||
| Switch.cs:131:43:131:43 | _ | Switch.cs:131:43:131:43 | After _ [match] | match |
|
||||
| Switch.cs:131:43:131:51 | ... => ... | Switch.cs:131:43:131:43 | _ | |
|
||||
| Switch.cs:131:43:131:51 | After ... => ... [match] | Switch.cs:131:48:131:51 | null | |
|
||||
| Switch.cs:131:48:131:51 | null | Switch.cs:131:17:131:53 | After ... switch { ... } [non-null] | non-null |
|
||||
| Switch.cs:131:48:131:51 | null | Switch.cs:131:17:131:53 | After ... switch { ... } [null] | null |
|
||||
| Switch.cs:134:9:134:11 | Entry | Switch.cs:134:17:134:17 | i | |
|
||||
@@ -6674,19 +6738,23 @@
|
||||
| Switch.cs:138:29:138:30 | After -... | Switch.cs:138:22:138:31 | return ...; | |
|
||||
| Switch.cs:138:29:138:30 | Before -... | Switch.cs:138:30:138:30 | 1 | |
|
||||
| Switch.cs:138:30:138:30 | 1 | Switch.cs:138:29:138:30 | -... | |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:18:139:18 | 1 | |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [match] | Switch.cs:139:21:139:29 | Before return ...; | |
|
||||
| Switch.cs:139:13:139:19 | After case ...: [no-match] | Switch.cs:140:13:140:19 | case ...: | |
|
||||
| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:13:139:19 | After case ...: [match] | match |
|
||||
| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:13:139:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:21:139:29 | Before return ...; | |
|
||||
| Switch.cs:139:13:139:19 | case ...: | Switch.cs:139:18:139:18 | 1 | |
|
||||
| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:18:139:18 | After 1 [match] | match |
|
||||
| Switch.cs:139:18:139:18 | 1 | Switch.cs:139:18:139:18 | After 1 [no-match] | no-match |
|
||||
| Switch.cs:139:18:139:18 | After 1 [match] | Switch.cs:139:13:139:19 | After case ...: [match] | match |
|
||||
| Switch.cs:139:18:139:18 | After 1 [no-match] | Switch.cs:139:13:139:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:139:21:139:29 | Before return ...; | Switch.cs:139:28:139:28 | 1 | |
|
||||
| Switch.cs:139:21:139:29 | return ...; | Switch.cs:134:9:134:11 | Normal Exit | return |
|
||||
| Switch.cs:139:28:139:28 | 1 | Switch.cs:139:21:139:29 | return ...; | |
|
||||
| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:18:140:18 | 2 | |
|
||||
| Switch.cs:140:13:140:19 | After case ...: [match] | Switch.cs:140:21:140:29 | Before return ...; | |
|
||||
| Switch.cs:140:13:140:19 | After case ...: [no-match] | Switch.cs:138:13:138:20 | default: | |
|
||||
| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | After case ...: [match] | match |
|
||||
| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:13:140:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:21:140:29 | Before return ...; | |
|
||||
| Switch.cs:140:13:140:19 | case ...: | Switch.cs:140:18:140:18 | 2 | |
|
||||
| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:18:140:18 | After 2 [match] | match |
|
||||
| Switch.cs:140:18:140:18 | 2 | Switch.cs:140:18:140:18 | After 2 [no-match] | no-match |
|
||||
| Switch.cs:140:18:140:18 | After 2 [match] | Switch.cs:140:13:140:19 | After case ...: [match] | match |
|
||||
| Switch.cs:140:18:140:18 | After 2 [no-match] | Switch.cs:140:13:140:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:140:21:140:29 | Before return ...; | Switch.cs:140:28:140:28 | 2 | |
|
||||
| Switch.cs:140:21:140:29 | return ...; | Switch.cs:134:9:134:11 | Normal Exit | return |
|
||||
| Switch.cs:140:28:140:28 | 2 | Switch.cs:140:21:140:29 | return ...; | |
|
||||
@@ -6696,11 +6764,13 @@
|
||||
| Switch.cs:145:5:152:5 | {...} | Switch.cs:146:9:151:9 | switch (...) {...} | |
|
||||
| Switch.cs:146:9:151:9 | switch (...) {...} | Switch.cs:146:17:146:17 | access to parameter i | |
|
||||
| Switch.cs:146:17:146:17 | access to parameter i | Switch.cs:148:13:148:19 | case ...: | |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:18:148:18 | 1 | |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [match] | Switch.cs:148:21:148:29 | Before return ...; | |
|
||||
| Switch.cs:148:13:148:19 | After case ...: [no-match] | Switch.cs:150:13:150:19 | case ...: | |
|
||||
| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:13:148:19 | After case ...: [match] | match |
|
||||
| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:13:148:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:21:148:29 | Before return ...; | |
|
||||
| Switch.cs:148:13:148:19 | case ...: | Switch.cs:148:18:148:18 | 1 | |
|
||||
| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:18:148:18 | After 1 [match] | match |
|
||||
| Switch.cs:148:18:148:18 | 1 | Switch.cs:148:18:148:18 | After 1 [no-match] | no-match |
|
||||
| Switch.cs:148:18:148:18 | After 1 [match] | Switch.cs:148:13:148:19 | After case ...: [match] | match |
|
||||
| Switch.cs:148:18:148:18 | After 1 [no-match] | Switch.cs:148:13:148:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:148:21:148:29 | Before return ...; | Switch.cs:148:28:148:28 | 1 | |
|
||||
| Switch.cs:148:21:148:29 | return ...; | Switch.cs:144:9:144:11 | Normal Exit | return |
|
||||
| Switch.cs:148:28:148:28 | 1 | Switch.cs:148:21:148:29 | return ...; | |
|
||||
@@ -6712,11 +6782,13 @@
|
||||
| Switch.cs:149:29:149:30 | After -... | Switch.cs:149:22:149:31 | return ...; | |
|
||||
| Switch.cs:149:29:149:30 | Before -... | Switch.cs:149:30:149:30 | 1 | |
|
||||
| Switch.cs:149:30:149:30 | 1 | Switch.cs:149:29:149:30 | -... | |
|
||||
| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:18:150:18 | 2 | |
|
||||
| Switch.cs:150:13:150:19 | After case ...: [match] | Switch.cs:150:21:150:29 | Before return ...; | |
|
||||
| Switch.cs:150:13:150:19 | After case ...: [no-match] | Switch.cs:149:13:149:20 | default: | |
|
||||
| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | After case ...: [match] | match |
|
||||
| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:13:150:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:21:150:29 | Before return ...; | |
|
||||
| Switch.cs:150:13:150:19 | case ...: | Switch.cs:150:18:150:18 | 2 | |
|
||||
| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:18:150:18 | After 2 [match] | match |
|
||||
| Switch.cs:150:18:150:18 | 2 | Switch.cs:150:18:150:18 | After 2 [no-match] | no-match |
|
||||
| Switch.cs:150:18:150:18 | After 2 [match] | Switch.cs:150:13:150:19 | After case ...: [match] | match |
|
||||
| Switch.cs:150:18:150:18 | After 2 [no-match] | Switch.cs:150:13:150:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:150:21:150:29 | Before return ...; | Switch.cs:150:28:150:28 | 2 | |
|
||||
| Switch.cs:150:21:150:29 | return ...; | Switch.cs:144:9:144:11 | Normal Exit | return |
|
||||
| Switch.cs:150:28:150:28 | 2 | Switch.cs:150:21:150:29 | return ...; | |
|
||||
@@ -6734,16 +6806,20 @@
|
||||
| Switch.cs:156:17:156:17 | access to parameter b | Switch.cs:156:28:156:38 | ... => ... | |
|
||||
| Switch.cs:156:17:156:54 | ... switch { ... } | Switch.cs:156:17:156:17 | access to parameter b | |
|
||||
| Switch.cs:156:17:156:54 | After ... switch { ... } | Switch.cs:156:13:156:54 | String s = ... | |
|
||||
| Switch.cs:156:28:156:31 | true | Switch.cs:156:36:156:38 | "a" | |
|
||||
| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | After ... => ... [match] | match |
|
||||
| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:38 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:28:156:31 | true | |
|
||||
| Switch.cs:156:28:156:31 | After true [match] | Switch.cs:156:28:156:38 | After ... => ... [match] | match |
|
||||
| Switch.cs:156:28:156:31 | After true [no-match] | Switch.cs:156:28:156:38 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:156:28:156:31 | true | Switch.cs:156:28:156:31 | After true [match] | match |
|
||||
| Switch.cs:156:28:156:31 | true | Switch.cs:156:28:156:31 | After true [no-match] | no-match |
|
||||
| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:28:156:31 | true | |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [match] | Switch.cs:156:36:156:38 | "a" | |
|
||||
| Switch.cs:156:28:156:38 | After ... => ... [no-match] | Switch.cs:156:41:156:52 | ... => ... | |
|
||||
| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:17:156:54 | After ... switch { ... } | |
|
||||
| Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | |
|
||||
| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | After ... => ... [match] | match |
|
||||
| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:52 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:41:156:45 | false | |
|
||||
| Switch.cs:156:41:156:45 | After false [match] | Switch.cs:156:41:156:52 | After ... => ... [match] | match |
|
||||
| Switch.cs:156:41:156:45 | After false [no-match] | Switch.cs:156:41:156:52 | After ... => ... [no-match] | no-match |
|
||||
| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | After false [match] | match |
|
||||
| Switch.cs:156:41:156:45 | false | Switch.cs:156:41:156:45 | After false [no-match] | no-match |
|
||||
| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:41:156:45 | false | |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [match] | Switch.cs:156:50:156:52 | "b" | |
|
||||
| Switch.cs:156:41:156:52 | After ... => ... [no-match] | Switch.cs:156:17:156:54 | After ... switch { ... } | |
|
||||
| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:17:156:54 | After ... switch { ... } | |
|
||||
| Switch.cs:157:9:160:49 | After if (...) ... | Switch.cs:155:5:161:5 | After {...} | |
|
||||
@@ -6786,16 +6862,20 @@
|
||||
| Switch.cs:165:9:177:9 | After switch (...) {...} | Switch.cs:164:5:178:5 | After {...} | |
|
||||
| Switch.cs:165:9:177:9 | switch (...) {...} | Switch.cs:165:17:165:17 | access to parameter i | |
|
||||
| Switch.cs:165:17:165:17 | access to parameter i | Switch.cs:167:13:167:19 | case ...: | |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:167:18:167:18 | 1 | |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [match] | Switch.cs:169:17:169:51 | ...; | |
|
||||
| Switch.cs:167:13:167:19 | After case ...: [no-match] | Switch.cs:168:13:168:19 | case ...: | |
|
||||
| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:13:167:19 | After case ...: [match] | match |
|
||||
| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:13:167:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:167:18:167:18 | 1 | Switch.cs:169:17:169:51 | ...; | |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:168:18:168:18 | 2 | |
|
||||
| Switch.cs:167:13:167:19 | case ...: | Switch.cs:167:18:167:18 | 1 | |
|
||||
| Switch.cs:167:18:167:18 | 1 | Switch.cs:167:18:167:18 | After 1 [match] | match |
|
||||
| Switch.cs:167:18:167:18 | 1 | Switch.cs:167:18:167:18 | After 1 [no-match] | no-match |
|
||||
| Switch.cs:167:18:167:18 | After 1 [match] | Switch.cs:167:13:167:19 | After case ...: [match] | match |
|
||||
| Switch.cs:167:18:167:18 | After 1 [no-match] | Switch.cs:167:13:167:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [match] | Switch.cs:169:17:169:51 | ...; | |
|
||||
| Switch.cs:168:13:168:19 | After case ...: [no-match] | Switch.cs:171:13:171:19 | case ...: | |
|
||||
| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | After case ...: [match] | match |
|
||||
| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:13:168:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:168:18:168:18 | 2 | Switch.cs:169:17:169:51 | ...; | |
|
||||
| Switch.cs:168:13:168:19 | case ...: | Switch.cs:168:18:168:18 | 2 | |
|
||||
| Switch.cs:168:18:168:18 | 2 | Switch.cs:168:18:168:18 | After 2 [match] | match |
|
||||
| Switch.cs:168:18:168:18 | 2 | Switch.cs:168:18:168:18 | After 2 [no-match] | no-match |
|
||||
| Switch.cs:168:18:168:18 | After 2 [match] | Switch.cs:168:13:168:19 | After case ...: [match] | match |
|
||||
| Switch.cs:168:18:168:18 | After 2 [no-match] | Switch.cs:168:13:168:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:169:17:169:50 | After call to method WriteLine | Switch.cs:169:17:169:51 | After ...; | |
|
||||
| Switch.cs:169:17:169:50 | Before call to method WriteLine | Switch.cs:169:42:169:49 | "1 or 2" | |
|
||||
| Switch.cs:169:17:169:50 | call to method WriteLine | Switch.cs:169:17:169:50 | After call to method WriteLine | |
|
||||
@@ -6804,11 +6884,13 @@
|
||||
| Switch.cs:169:42:169:49 | "1 or 2" | Switch.cs:169:17:169:50 | call to method WriteLine | |
|
||||
| Switch.cs:170:17:170:22 | Before break; | Switch.cs:170:17:170:22 | break; | |
|
||||
| Switch.cs:170:17:170:22 | break; | Switch.cs:165:9:177:9 | After switch (...) {...} | break |
|
||||
| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:171:18:171:18 | 3 | |
|
||||
| Switch.cs:171:13:171:19 | After case ...: [match] | Switch.cs:172:17:172:46 | ...; | |
|
||||
| Switch.cs:171:13:171:19 | After case ...: [no-match] | Switch.cs:174:13:174:20 | default: | |
|
||||
| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | After case ...: [match] | match |
|
||||
| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:13:171:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:171:18:171:18 | 3 | Switch.cs:172:17:172:46 | ...; | |
|
||||
| Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:18:171:18 | 3 | |
|
||||
| Switch.cs:171:18:171:18 | 3 | Switch.cs:171:18:171:18 | After 3 [match] | match |
|
||||
| Switch.cs:171:18:171:18 | 3 | Switch.cs:171:18:171:18 | After 3 [no-match] | no-match |
|
||||
| Switch.cs:171:18:171:18 | After 3 [match] | Switch.cs:171:13:171:19 | After case ...: [match] | match |
|
||||
| Switch.cs:171:18:171:18 | After 3 [no-match] | Switch.cs:171:13:171:19 | After case ...: [no-match] | no-match |
|
||||
| Switch.cs:172:17:172:45 | After call to method WriteLine | Switch.cs:172:17:172:46 | After ...; | |
|
||||
| Switch.cs:172:17:172:45 | Before call to method WriteLine | Switch.cs:172:42:172:44 | "3" | |
|
||||
| Switch.cs:172:17:172:45 | call to method WriteLine | Switch.cs:172:17:172:45 | After call to method WriteLine | |
|
||||
@@ -7195,11 +7277,13 @@
|
||||
| cflow.cs:39:9:50:9 | After switch (...) {...} | cflow.cs:51:9:59:9 | switch (...) {...} | |
|
||||
| cflow.cs:39:9:50:9 | switch (...) {...} | cflow.cs:39:17:39:17 | access to parameter a | |
|
||||
| cflow.cs:39:17:39:17 | access to parameter a | cflow.cs:41:13:41:19 | case ...: | |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:41:18:41:18 | 1 | |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [match] | cflow.cs:42:17:42:39 | ...; | |
|
||||
| cflow.cs:41:13:41:19 | After case ...: [no-match] | cflow.cs:44:13:44:19 | case ...: | |
|
||||
| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | After case ...: [match] | match |
|
||||
| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:13:41:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:41:18:41:18 | 1 | cflow.cs:42:17:42:39 | ...; | |
|
||||
| cflow.cs:41:13:41:19 | case ...: | cflow.cs:41:18:41:18 | 1 | |
|
||||
| cflow.cs:41:18:41:18 | 1 | cflow.cs:41:18:41:18 | After 1 [match] | match |
|
||||
| cflow.cs:41:18:41:18 | 1 | cflow.cs:41:18:41:18 | After 1 [no-match] | no-match |
|
||||
| cflow.cs:41:18:41:18 | After 1 [match] | cflow.cs:41:13:41:19 | After case ...: [match] | match |
|
||||
| cflow.cs:41:18:41:18 | After 1 [no-match] | cflow.cs:41:13:41:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:42:17:42:38 | After call to method WriteLine | cflow.cs:42:17:42:39 | After ...; | |
|
||||
| cflow.cs:42:17:42:38 | Before call to method WriteLine | cflow.cs:42:35:42:37 | "1" | |
|
||||
| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:42:17:42:38 | After call to method WriteLine | |
|
||||
@@ -7209,11 +7293,13 @@
|
||||
| cflow.cs:43:17:43:28 | Before goto case ...; | cflow.cs:43:27:43:27 | 2 | |
|
||||
| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:44:13:44:19 | After case ...: [match] | goto |
|
||||
| cflow.cs:43:27:43:27 | 2 | cflow.cs:43:17:43:28 | goto case ...; | |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:44:18:44:18 | 2 | |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [match] | cflow.cs:45:17:45:39 | ...; | |
|
||||
| cflow.cs:44:13:44:19 | After case ...: [no-match] | cflow.cs:47:13:47:19 | case ...: | |
|
||||
| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | After case ...: [match] | match |
|
||||
| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:13:44:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:44:18:44:18 | 2 | cflow.cs:45:17:45:39 | ...; | |
|
||||
| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | |
|
||||
| cflow.cs:44:18:44:18 | 2 | cflow.cs:44:18:44:18 | After 2 [match] | match |
|
||||
| cflow.cs:44:18:44:18 | 2 | cflow.cs:44:18:44:18 | After 2 [no-match] | no-match |
|
||||
| cflow.cs:44:18:44:18 | After 2 [match] | cflow.cs:44:13:44:19 | After case ...: [match] | match |
|
||||
| cflow.cs:44:18:44:18 | After 2 [no-match] | cflow.cs:44:13:44:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:45:17:45:38 | After call to method WriteLine | cflow.cs:45:17:45:39 | After ...; | |
|
||||
| cflow.cs:45:17:45:38 | Before call to method WriteLine | cflow.cs:45:35:45:37 | "2" | |
|
||||
| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:45:17:45:38 | After call to method WriteLine | |
|
||||
@@ -7223,11 +7309,13 @@
|
||||
| cflow.cs:46:17:46:28 | Before goto case ...; | cflow.cs:46:27:46:27 | 1 | |
|
||||
| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:41:13:41:19 | After case ...: [match] | goto |
|
||||
| cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; | |
|
||||
| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:47:18:47:18 | 3 | |
|
||||
| cflow.cs:47:13:47:19 | After case ...: [match] | cflow.cs:48:17:48:39 | ...; | |
|
||||
| cflow.cs:47:13:47:19 | After case ...: [no-match] | cflow.cs:39:9:50:9 | After switch (...) {...} | |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | After case ...: [match] | match |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:13:47:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | |
|
||||
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:47:18:47:18 | After 3 [match] | match |
|
||||
| cflow.cs:47:18:47:18 | 3 | cflow.cs:47:18:47:18 | After 3 [no-match] | no-match |
|
||||
| cflow.cs:47:18:47:18 | After 3 [match] | cflow.cs:47:13:47:19 | After case ...: [match] | match |
|
||||
| cflow.cs:47:18:47:18 | After 3 [no-match] | cflow.cs:47:13:47:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:48:17:48:38 | After call to method WriteLine | cflow.cs:48:17:48:39 | After ...; | |
|
||||
| cflow.cs:48:17:48:38 | Before call to method WriteLine | cflow.cs:48:35:48:37 | "3" | |
|
||||
| cflow.cs:48:17:48:38 | call to method WriteLine | cflow.cs:48:17:48:38 | After call to method WriteLine | |
|
||||
@@ -7239,11 +7327,13 @@
|
||||
| cflow.cs:51:9:59:9 | After switch (...) {...} | cflow.cs:60:9:66:9 | switch (...) {...} | |
|
||||
| cflow.cs:51:9:59:9 | switch (...) {...} | cflow.cs:51:17:51:17 | access to parameter a | |
|
||||
| cflow.cs:51:17:51:17 | access to parameter a | cflow.cs:53:13:53:20 | case ...: | |
|
||||
| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:53:18:53:19 | 42 | |
|
||||
| cflow.cs:53:13:53:20 | After case ...: [match] | cflow.cs:54:17:54:48 | ...; | |
|
||||
| cflow.cs:53:13:53:20 | After case ...: [no-match] | cflow.cs:56:13:56:20 | default: | |
|
||||
| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:13:53:20 | After case ...: [match] | match |
|
||||
| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:13:53:20 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:53:18:53:19 | 42 | cflow.cs:54:17:54:48 | ...; | |
|
||||
| cflow.cs:53:13:53:20 | case ...: | cflow.cs:53:18:53:19 | 42 | |
|
||||
| cflow.cs:53:18:53:19 | 42 | cflow.cs:53:18:53:19 | After 42 [match] | match |
|
||||
| cflow.cs:53:18:53:19 | 42 | cflow.cs:53:18:53:19 | After 42 [no-match] | no-match |
|
||||
| cflow.cs:53:18:53:19 | After 42 [match] | cflow.cs:53:13:53:20 | After case ...: [match] | match |
|
||||
| cflow.cs:53:18:53:19 | After 42 [no-match] | cflow.cs:53:13:53:20 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:54:17:54:47 | After call to method WriteLine | cflow.cs:54:17:54:48 | After ...; | |
|
||||
| cflow.cs:54:17:54:47 | Before call to method WriteLine | cflow.cs:54:35:54:46 | "The answer" | |
|
||||
| cflow.cs:54:17:54:47 | call to method WriteLine | cflow.cs:54:17:54:47 | After call to method WriteLine | |
|
||||
@@ -7271,11 +7361,13 @@
|
||||
| cflow.cs:60:27:60:31 | Before access to field Field | cflow.cs:60:27:60:31 | this access | |
|
||||
| cflow.cs:60:27:60:31 | access to field Field | cflow.cs:60:27:60:31 | After access to field Field | |
|
||||
| cflow.cs:60:27:60:31 | this access | cflow.cs:60:27:60:31 | access to field Field | |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:62:18:62:18 | 0 | |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [match] | cflow.cs:63:17:64:55 | if (...) ... | |
|
||||
| cflow.cs:62:13:62:19 | After case ...: [no-match] | cflow.cs:60:9:66:9 | After switch (...) {...} | |
|
||||
| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:13:62:19 | After case ...: [match] | match |
|
||||
| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:13:62:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:63:17:64:55 | if (...) ... | |
|
||||
| cflow.cs:62:13:62:19 | case ...: | cflow.cs:62:18:62:18 | 0 | |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:62:18:62:18 | After 0 [match] | match |
|
||||
| cflow.cs:62:18:62:18 | 0 | cflow.cs:62:18:62:18 | After 0 [no-match] | no-match |
|
||||
| cflow.cs:62:18:62:18 | After 0 [match] | cflow.cs:62:13:62:19 | After case ...: [match] | match |
|
||||
| cflow.cs:62:18:62:18 | After 0 [no-match] | cflow.cs:62:13:62:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:63:17:64:55 | After if (...) ... | cflow.cs:65:17:65:22 | Before break; | |
|
||||
| cflow.cs:63:17:64:55 | if (...) ... | cflow.cs:63:21:63:34 | !... | |
|
||||
| cflow.cs:63:21:63:34 | !... | cflow.cs:63:23:63:33 | Before ... == ... | |
|
||||
@@ -8221,18 +8313,22 @@
|
||||
| cflow.cs:246:17:246:32 | After ... + ... | cflow.cs:248:13:248:19 | case ...: | |
|
||||
| cflow.cs:246:17:246:32 | Before ... + ... | cflow.cs:246:17:246:28 | Before access to property Length | |
|
||||
| cflow.cs:246:32:246:32 | 3 | cflow.cs:246:17:246:32 | ... + ... | |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:248:18:248:18 | 0 | |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [match] | cflow.cs:249:17:249:29 | Before goto default; | |
|
||||
| cflow.cs:248:13:248:19 | After case ...: [no-match] | cflow.cs:250:13:250:19 | case ...: | |
|
||||
| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:13:248:19 | After case ...: [match] | match |
|
||||
| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:13:248:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:248:18:248:18 | 0 | cflow.cs:249:17:249:29 | Before goto default; | |
|
||||
| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:18:248:18 | 0 | |
|
||||
| cflow.cs:248:18:248:18 | 0 | cflow.cs:248:18:248:18 | After 0 [match] | match |
|
||||
| cflow.cs:248:18:248:18 | 0 | cflow.cs:248:18:248:18 | After 0 [no-match] | no-match |
|
||||
| cflow.cs:248:18:248:18 | After 0 [match] | cflow.cs:248:13:248:19 | After case ...: [match] | match |
|
||||
| cflow.cs:248:18:248:18 | After 0 [no-match] | cflow.cs:248:13:248:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:249:17:249:29 | Before goto default; | cflow.cs:249:17:249:29 | goto default; | |
|
||||
| cflow.cs:249:17:249:29 | goto default; | cflow.cs:255:13:255:20 | After default: [match] | goto |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:250:18:250:18 | 1 | |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [match] | cflow.cs:251:17:251:37 | ...; | |
|
||||
| cflow.cs:250:13:250:19 | After case ...: [no-match] | cflow.cs:253:13:253:19 | case ...: | |
|
||||
| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | After case ...: [match] | match |
|
||||
| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:13:250:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:250:18:250:18 | 1 | cflow.cs:251:17:251:37 | ...; | |
|
||||
| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:18:250:18 | 1 | |
|
||||
| cflow.cs:250:18:250:18 | 1 | cflow.cs:250:18:250:18 | After 1 [match] | match |
|
||||
| cflow.cs:250:18:250:18 | 1 | cflow.cs:250:18:250:18 | After 1 [no-match] | no-match |
|
||||
| cflow.cs:250:18:250:18 | After 1 [match] | cflow.cs:250:13:250:19 | After case ...: [match] | match |
|
||||
| cflow.cs:250:18:250:18 | After 1 [no-match] | cflow.cs:250:13:250:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:251:17:251:36 | After call to method WriteLine | cflow.cs:251:17:251:37 | After ...; | |
|
||||
| cflow.cs:251:17:251:36 | Before call to method WriteLine | cflow.cs:251:35:251:35 | 1 | |
|
||||
| cflow.cs:251:17:251:36 | call to method WriteLine | cflow.cs:251:17:251:36 | After call to method WriteLine | |
|
||||
@@ -8241,11 +8337,13 @@
|
||||
| cflow.cs:251:35:251:35 | 1 | cflow.cs:251:17:251:36 | call to method WriteLine | |
|
||||
| cflow.cs:252:17:252:22 | Before break; | cflow.cs:252:17:252:22 | break; | |
|
||||
| cflow.cs:252:17:252:22 | break; | cflow.cs:246:9:258:9 | After switch (...) {...} | break |
|
||||
| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:253:18:253:18 | 2 | |
|
||||
| cflow.cs:253:13:253:19 | After case ...: [match] | cflow.cs:254:17:254:27 | Before goto ...; | |
|
||||
| cflow.cs:253:13:253:19 | After case ...: [no-match] | cflow.cs:255:13:255:20 | default: | |
|
||||
| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | After case ...: [match] | match |
|
||||
| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:13:253:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:253:18:253:18 | 2 | cflow.cs:254:17:254:27 | Before goto ...; | |
|
||||
| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:18:253:18 | 2 | |
|
||||
| cflow.cs:253:18:253:18 | 2 | cflow.cs:253:18:253:18 | After 2 [match] | match |
|
||||
| cflow.cs:253:18:253:18 | 2 | cflow.cs:253:18:253:18 | After 2 [no-match] | no-match |
|
||||
| cflow.cs:253:18:253:18 | After 2 [match] | cflow.cs:253:13:253:19 | After case ...: [match] | match |
|
||||
| cflow.cs:253:18:253:18 | After 2 [no-match] | cflow.cs:253:13:253:19 | After case ...: [no-match] | no-match |
|
||||
| cflow.cs:254:17:254:27 | Before goto ...; | cflow.cs:254:17:254:27 | goto ...; | |
|
||||
| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto |
|
||||
| cflow.cs:255:13:255:20 | After default: [match] | cflow.cs:256:17:256:37 | ...; | |
|
||||
|
||||
@@ -79,7 +79,6 @@
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:17 | access to parameter o | false |
|
||||
| Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:17 | access to parameter o | false |
|
||||
| Guards.cs:334:13:334:15 | access to constant B | Guards.cs:334:13:334:20 | ... => ... | Guards.cs:334:13:334:15 | access to constant B | true |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true |
|
||||
| Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true |
|
||||
|
||||
@@ -202,7 +202,6 @@
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | false |
|
||||
| Guards.cs:334:13:334:15 | access to constant B | Guards.cs:334:13:334:20 | ... => ... | Guards.cs:334:13:334:15 | access to constant B | true |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | not null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | not null |
|
||||
|
||||
@@ -202,7 +202,6 @@
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:278:13:279:28 | ... => ... | Guards.cs:279:17:279:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:282:13:283:28 | ... => ... | Guards.cs:283:17:283:28 | call to method ToString | false |
|
||||
| Guards.cs:287:17:287:28 | call to method ToString | Guards.cs:284:13:285:28 | ... => ... | Guards.cs:285:17:285:28 | call to method ToString | false |
|
||||
| Guards.cs:334:13:334:15 | access to constant B | Guards.cs:334:13:334:20 | ... => ... | Guards.cs:334:13:334:15 | access to constant B | true |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false |
|
||||
| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | not null |
|
||||
| Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | not null |
|
||||
|
||||
@@ -3,18 +3,22 @@
|
||||
| CSharp7.cs:248:9:274:9 | After switch (...) {...} | CSharp7.cs:231:5:275:5 | After {...} | semmle.label | successor |
|
||||
| CSharp7.cs:248:9:274:9 | switch (...) {...} | CSharp7.cs:248:17:248:17 | access to local variable o | semmle.label | successor |
|
||||
| CSharp7.cs:248:17:248:17 | access to local variable o | CSharp7.cs:250:13:250:23 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:250:13:250:23 | After case ...: [match] | CSharp7.cs:250:18:250:22 | "xyz" | semmle.label | successor |
|
||||
| CSharp7.cs:250:13:250:23 | After case ...: [match] | CSharp7.cs:251:17:251:22 | Before break; | semmle.label | successor |
|
||||
| CSharp7.cs:250:13:250:23 | After case ...: [no-match] | CSharp7.cs:252:13:252:31 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:250:13:250:23 | case ...: | CSharp7.cs:250:13:250:23 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:250:13:250:23 | case ...: | CSharp7.cs:250:13:250:23 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:250:18:250:22 | "xyz" | CSharp7.cs:251:17:251:22 | Before break; | semmle.label | successor |
|
||||
| CSharp7.cs:250:13:250:23 | case ...: | CSharp7.cs:250:18:250:22 | "xyz" | semmle.label | successor |
|
||||
| CSharp7.cs:250:18:250:22 | "xyz" | CSharp7.cs:250:18:250:22 | After "xyz" [match] | semmle.label | match |
|
||||
| CSharp7.cs:250:18:250:22 | "xyz" | CSharp7.cs:250:18:250:22 | After "xyz" [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:250:18:250:22 | After "xyz" [match] | CSharp7.cs:250:13:250:23 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:250:18:250:22 | After "xyz" [no-match] | CSharp7.cs:250:13:250:23 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:251:17:251:22 | Before break; | CSharp7.cs:251:17:251:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:251:17:251:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:252:13:252:31 | After case ...: [match] | CSharp7.cs:252:18:252:19 | "" | semmle.label | successor |
|
||||
| CSharp7.cs:252:13:252:31 | After case ...: [match] | CSharp7.cs:252:26:252:30 | Before ... < ... | semmle.label | successor |
|
||||
| CSharp7.cs:252:13:252:31 | After case ...: [no-match] | CSharp7.cs:254:13:254:41 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:252:13:252:31 | case ...: | CSharp7.cs:252:13:252:31 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:252:13:252:31 | case ...: | CSharp7.cs:252:13:252:31 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:252:18:252:19 | "" | CSharp7.cs:252:26:252:30 | Before ... < ... | semmle.label | successor |
|
||||
| CSharp7.cs:252:13:252:31 | case ...: | CSharp7.cs:252:18:252:19 | "" | semmle.label | successor |
|
||||
| CSharp7.cs:252:18:252:19 | "" | CSharp7.cs:252:18:252:19 | After "" [match] | semmle.label | match |
|
||||
| CSharp7.cs:252:18:252:19 | "" | CSharp7.cs:252:18:252:19 | After "" [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:252:18:252:19 | After "" [match] | CSharp7.cs:252:13:252:31 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:252:18:252:19 | After "" [no-match] | CSharp7.cs:252:13:252:31 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:252:26:252:26 | 1 | CSharp7.cs:252:30:252:30 | 2 | semmle.label | successor |
|
||||
| CSharp7.cs:252:26:252:30 | ... < ... | CSharp7.cs:252:26:252:30 | After ... < ... [false] | semmle.label | false |
|
||||
| CSharp7.cs:252:26:252:30 | ... < ... | CSharp7.cs:252:26:252:30 | After ... < ... [true] | semmle.label | true |
|
||||
@@ -24,11 +28,13 @@
|
||||
| CSharp7.cs:252:30:252:30 | 2 | CSharp7.cs:252:26:252:30 | ... < ... | semmle.label | successor |
|
||||
| CSharp7.cs:253:17:253:22 | Before break; | CSharp7.cs:253:17:253:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:253:17:253:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:254:13:254:41 | After case ...: [match] | CSharp7.cs:254:18:254:20 | "x" | semmle.label | successor |
|
||||
| CSharp7.cs:254:13:254:41 | After case ...: [match] | CSharp7.cs:254:27:254:40 | Before ... is ... | semmle.label | successor |
|
||||
| CSharp7.cs:254:13:254:41 | After case ...: [no-match] | CSharp7.cs:257:13:257:36 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:254:13:254:41 | case ...: | CSharp7.cs:254:13:254:41 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:254:13:254:41 | case ...: | CSharp7.cs:254:13:254:41 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:254:18:254:20 | "x" | CSharp7.cs:254:27:254:40 | Before ... is ... | semmle.label | successor |
|
||||
| CSharp7.cs:254:13:254:41 | case ...: | CSharp7.cs:254:18:254:20 | "x" | semmle.label | successor |
|
||||
| CSharp7.cs:254:18:254:20 | "x" | CSharp7.cs:254:18:254:20 | After "x" [match] | semmle.label | match |
|
||||
| CSharp7.cs:254:18:254:20 | "x" | CSharp7.cs:254:18:254:20 | After "x" [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:254:18:254:20 | After "x" [match] | CSharp7.cs:254:13:254:41 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:254:18:254:20 | After "x" [no-match] | CSharp7.cs:254:13:254:41 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:254:27:254:27 | access to local variable o | CSharp7.cs:254:27:254:40 | ... is ... | semmle.label | successor |
|
||||
| CSharp7.cs:254:27:254:40 | ... is ... | CSharp7.cs:254:27:254:40 | After ... is ... [false] | semmle.label | false |
|
||||
| CSharp7.cs:254:27:254:40 | ... is ... | CSharp7.cs:254:27:254:40 | [MatchTrue] ... is ... | semmle.label | true |
|
||||
@@ -52,11 +58,13 @@
|
||||
| CSharp7.cs:255:40:255:41 | access to local variable s4 | CSharp7.cs:255:39:255:42 | {...} | semmle.label | successor |
|
||||
| CSharp7.cs:256:17:256:22 | Before break; | CSharp7.cs:256:17:256:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:256:17:256:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:257:13:257:36 | After case ...: [match] | CSharp7.cs:257:18:257:23 | Int32 i2 | semmle.label | successor |
|
||||
| CSharp7.cs:257:13:257:36 | After case ...: [match] | CSharp7.cs:257:30:257:35 | Before ... > ... | semmle.label | successor |
|
||||
| CSharp7.cs:257:13:257:36 | After case ...: [no-match] | CSharp7.cs:260:13:260:24 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:257:13:257:36 | case ...: | CSharp7.cs:257:13:257:36 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:257:13:257:36 | case ...: | CSharp7.cs:257:13:257:36 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:257:18:257:23 | Int32 i2 | CSharp7.cs:257:30:257:35 | Before ... > ... | semmle.label | successor |
|
||||
| CSharp7.cs:257:13:257:36 | case ...: | CSharp7.cs:257:18:257:23 | Int32 i2 | semmle.label | successor |
|
||||
| CSharp7.cs:257:18:257:23 | After Int32 i2 [match] | CSharp7.cs:257:13:257:36 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:257:18:257:23 | After Int32 i2 [no-match] | CSharp7.cs:257:13:257:36 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:257:18:257:23 | Int32 i2 | CSharp7.cs:257:18:257:23 | After Int32 i2 [match] | semmle.label | match |
|
||||
| CSharp7.cs:257:18:257:23 | Int32 i2 | CSharp7.cs:257:18:257:23 | After Int32 i2 [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:257:30:257:31 | access to local variable i2 | CSharp7.cs:257:35:257:35 | 0 | semmle.label | successor |
|
||||
| CSharp7.cs:257:30:257:35 | ... > ... | CSharp7.cs:257:30:257:35 | After ... > ... [false] | semmle.label | false |
|
||||
| CSharp7.cs:257:30:257:35 | ... > ... | CSharp7.cs:257:30:257:35 | After ... > ... [true] | semmle.label | true |
|
||||
@@ -79,11 +87,13 @@
|
||||
| CSharp7.cs:258:47:258:48 | access to local variable i2 | CSharp7.cs:258:46:258:49 | {...} | semmle.label | successor |
|
||||
| CSharp7.cs:259:17:259:22 | Before break; | CSharp7.cs:259:17:259:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:259:17:259:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:260:13:260:24 | After case ...: [match] | CSharp7.cs:260:18:260:23 | Int32 i3 | semmle.label | successor |
|
||||
| CSharp7.cs:260:13:260:24 | After case ...: [match] | CSharp7.cs:261:17:261:47 | ...; | semmle.label | successor |
|
||||
| CSharp7.cs:260:13:260:24 | After case ...: [no-match] | CSharp7.cs:263:13:263:27 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:260:13:260:24 | case ...: | CSharp7.cs:260:13:260:24 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:260:13:260:24 | case ...: | CSharp7.cs:260:13:260:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:260:18:260:23 | Int32 i3 | CSharp7.cs:261:17:261:47 | ...; | semmle.label | successor |
|
||||
| CSharp7.cs:260:13:260:24 | case ...: | CSharp7.cs:260:18:260:23 | Int32 i3 | semmle.label | successor |
|
||||
| CSharp7.cs:260:18:260:23 | After Int32 i3 [match] | CSharp7.cs:260:13:260:24 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:260:18:260:23 | After Int32 i3 [no-match] | CSharp7.cs:260:13:260:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:260:18:260:23 | Int32 i3 | CSharp7.cs:260:18:260:23 | After Int32 i3 [match] | semmle.label | match |
|
||||
| CSharp7.cs:260:18:260:23 | Int32 i3 | CSharp7.cs:260:18:260:23 | After Int32 i3 [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:261:17:261:46 | After call to method WriteLine | CSharp7.cs:261:17:261:47 | After ...; | semmle.label | successor |
|
||||
| CSharp7.cs:261:17:261:46 | Before call to method WriteLine | CSharp7.cs:261:35:261:45 | Before $"..." | semmle.label | successor |
|
||||
| CSharp7.cs:261:17:261:46 | call to method WriteLine | CSharp7.cs:261:17:261:46 | After call to method WriteLine | semmle.label | successor |
|
||||
@@ -99,11 +109,13 @@
|
||||
| CSharp7.cs:261:42:261:43 | access to local variable i3 | CSharp7.cs:261:41:261:44 | {...} | semmle.label | successor |
|
||||
| CSharp7.cs:262:17:262:22 | Before break; | CSharp7.cs:262:17:262:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:262:17:262:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:263:13:263:27 | After case ...: [match] | CSharp7.cs:263:18:263:26 | String s2 | semmle.label | successor |
|
||||
| CSharp7.cs:263:13:263:27 | After case ...: [match] | CSharp7.cs:264:17:264:50 | ...; | semmle.label | successor |
|
||||
| CSharp7.cs:263:13:263:27 | After case ...: [no-match] | CSharp7.cs:266:13:266:26 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:263:13:263:27 | case ...: | CSharp7.cs:263:13:263:27 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:263:13:263:27 | case ...: | CSharp7.cs:263:13:263:27 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:263:18:263:26 | String s2 | CSharp7.cs:264:17:264:50 | ...; | semmle.label | successor |
|
||||
| CSharp7.cs:263:13:263:27 | case ...: | CSharp7.cs:263:18:263:26 | String s2 | semmle.label | successor |
|
||||
| CSharp7.cs:263:18:263:26 | After String s2 [match] | CSharp7.cs:263:13:263:27 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:263:18:263:26 | After String s2 [no-match] | CSharp7.cs:263:13:263:27 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:263:18:263:26 | String s2 | CSharp7.cs:263:18:263:26 | After String s2 [match] | semmle.label | match |
|
||||
| CSharp7.cs:263:18:263:26 | String s2 | CSharp7.cs:263:18:263:26 | After String s2 [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:264:17:264:49 | After call to method WriteLine | CSharp7.cs:264:17:264:50 | After ...; | semmle.label | successor |
|
||||
| CSharp7.cs:264:17:264:49 | Before call to method WriteLine | CSharp7.cs:264:35:264:48 | Before $"..." | semmle.label | successor |
|
||||
| CSharp7.cs:264:17:264:49 | call to method WriteLine | CSharp7.cs:264:17:264:49 | After call to method WriteLine | semmle.label | successor |
|
||||
@@ -119,11 +131,13 @@
|
||||
| CSharp7.cs:264:45:264:46 | access to local variable s2 | CSharp7.cs:264:44:264:47 | {...} | semmle.label | successor |
|
||||
| CSharp7.cs:265:17:265:22 | Before break; | CSharp7.cs:265:17:265:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:265:17:265:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:266:13:266:26 | After case ...: [match] | CSharp7.cs:266:18:266:23 | access to type Double | semmle.label | successor |
|
||||
| CSharp7.cs:266:13:266:26 | After case ...: [match] | CSharp7.cs:267:17:267:44 | ...; | semmle.label | successor |
|
||||
| CSharp7.cs:266:13:266:26 | After case ...: [no-match] | CSharp7.cs:269:13:269:24 | case ...: | semmle.label | successor |
|
||||
| CSharp7.cs:266:13:266:26 | case ...: | CSharp7.cs:266:13:266:26 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:266:13:266:26 | case ...: | CSharp7.cs:266:13:266:26 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:266:18:266:23 | access to type Double | CSharp7.cs:267:17:267:44 | ...; | semmle.label | successor |
|
||||
| CSharp7.cs:266:13:266:26 | case ...: | CSharp7.cs:266:18:266:23 | access to type Double | semmle.label | successor |
|
||||
| CSharp7.cs:266:18:266:23 | After access to type Double [match] | CSharp7.cs:266:13:266:26 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:266:18:266:23 | After access to type Double [no-match] | CSharp7.cs:266:13:266:26 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:266:18:266:23 | access to type Double | CSharp7.cs:266:18:266:23 | After access to type Double [match] | semmle.label | match |
|
||||
| CSharp7.cs:266:18:266:23 | access to type Double | CSharp7.cs:266:18:266:23 | After access to type Double [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:267:17:267:43 | After call to method WriteLine | CSharp7.cs:267:17:267:44 | After ...; | semmle.label | successor |
|
||||
| CSharp7.cs:267:17:267:43 | Before call to method WriteLine | CSharp7.cs:267:35:267:42 | "Double" | semmle.label | successor |
|
||||
| CSharp7.cs:267:17:267:43 | call to method WriteLine | CSharp7.cs:267:17:267:43 | After call to method WriteLine | semmle.label | successor |
|
||||
@@ -132,11 +146,13 @@
|
||||
| CSharp7.cs:267:35:267:42 | "Double" | CSharp7.cs:267:17:267:43 | call to method WriteLine | semmle.label | successor |
|
||||
| CSharp7.cs:268:17:268:22 | Before break; | CSharp7.cs:268:17:268:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:268:17:268:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:269:13:269:24 | After case ...: [match] | CSharp7.cs:269:18:269:23 | Object v2 | semmle.label | successor |
|
||||
| CSharp7.cs:269:13:269:24 | After case ...: [match] | CSharp7.cs:270:17:270:22 | Before break; | semmle.label | successor |
|
||||
| CSharp7.cs:269:13:269:24 | After case ...: [no-match] | CSharp7.cs:271:13:271:20 | default: | semmle.label | successor |
|
||||
| CSharp7.cs:269:13:269:24 | case ...: | CSharp7.cs:269:13:269:24 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:269:13:269:24 | case ...: | CSharp7.cs:269:13:269:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:269:18:269:23 | Object v2 | CSharp7.cs:270:17:270:22 | Before break; | semmle.label | successor |
|
||||
| CSharp7.cs:269:13:269:24 | case ...: | CSharp7.cs:269:18:269:23 | Object v2 | semmle.label | successor |
|
||||
| CSharp7.cs:269:18:269:23 | After Object v2 [match] | CSharp7.cs:269:13:269:24 | After case ...: [match] | semmle.label | match |
|
||||
| CSharp7.cs:269:18:269:23 | After Object v2 [no-match] | CSharp7.cs:269:13:269:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:269:18:269:23 | Object v2 | CSharp7.cs:269:18:269:23 | After Object v2 [match] | semmle.label | match |
|
||||
| CSharp7.cs:269:18:269:23 | Object v2 | CSharp7.cs:269:18:269:23 | After Object v2 [no-match] | semmle.label | no-match |
|
||||
| CSharp7.cs:270:17:270:22 | Before break; | CSharp7.cs:270:17:270:22 | break; | semmle.label | successor |
|
||||
| CSharp7.cs:270:17:270:22 | break; | CSharp7.cs:248:9:274:9 | After switch (...) {...} | semmle.label | break |
|
||||
| CSharp7.cs:271:13:271:20 | After default: [match] | CSharp7.cs:272:17:272:52 | ...; | semmle.label | successor |
|
||||
|
||||
@@ -12,10 +12,12 @@
|
||||
| patterns.cs:100:20:100:20 | access to parameter x | patterns.cs:101:13:101:40 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:100:20:103:9 | ... switch { ... } | patterns.cs:100:20:100:20 | access to parameter x | semmle.label | successor |
|
||||
| patterns.cs:100:20:103:9 | After ... switch { ... } | patterns.cs:100:13:103:9 | String size = ... | semmle.label | successor |
|
||||
| patterns.cs:101:13:101:17 | Int32 y | patterns.cs:101:24:101:29 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:101:13:101:40 | ... => ... | patterns.cs:101:13:101:40 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:101:13:101:40 | ... => ... | patterns.cs:101:13:101:40 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:101:13:101:40 | After ... => ... [match] | patterns.cs:101:13:101:17 | Int32 y | semmle.label | successor |
|
||||
| patterns.cs:101:13:101:17 | After Int32 y [match] | patterns.cs:101:13:101:40 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:101:13:101:17 | After Int32 y [no-match] | patterns.cs:101:13:101:40 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:101:13:101:17 | Int32 y | patterns.cs:101:13:101:17 | After Int32 y [match] | semmle.label | match |
|
||||
| patterns.cs:101:13:101:17 | Int32 y | patterns.cs:101:13:101:17 | After Int32 y [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:101:13:101:40 | ... => ... | patterns.cs:101:13:101:17 | Int32 y | semmle.label | successor |
|
||||
| patterns.cs:101:13:101:40 | After ... => ... [match] | patterns.cs:101:24:101:29 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:101:13:101:40 | After ... => ... [no-match] | patterns.cs:102:13:102:24 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:101:24:101:24 | access to local variable y | patterns.cs:101:28:101:29 | 10 | semmle.label | successor |
|
||||
| patterns.cs:101:24:101:29 | ... > ... | patterns.cs:101:24:101:29 | After ... > ... [false] | semmle.label | false |
|
||||
@@ -25,9 +27,10 @@
|
||||
| patterns.cs:101:24:101:29 | Before ... > ... | patterns.cs:101:24:101:24 | access to local variable y | semmle.label | successor |
|
||||
| patterns.cs:101:28:101:29 | 10 | patterns.cs:101:24:101:29 | ... > ... | semmle.label | successor |
|
||||
| patterns.cs:101:34:101:40 | "large" | patterns.cs:100:20:103:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:102:13:102:13 | _ | patterns.cs:102:18:102:24 | "small" | semmle.label | successor |
|
||||
| patterns.cs:102:13:102:24 | ... => ... | patterns.cs:102:13:102:24 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:102:13:102:24 | After ... => ... [match] | patterns.cs:102:13:102:13 | _ | semmle.label | successor |
|
||||
| patterns.cs:102:13:102:13 | After _ [match] | patterns.cs:102:13:102:24 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:102:13:102:13 | _ | patterns.cs:102:13:102:13 | After _ [match] | semmle.label | match |
|
||||
| patterns.cs:102:13:102:24 | ... => ... | patterns.cs:102:13:102:13 | _ | semmle.label | successor |
|
||||
| patterns.cs:102:13:102:24 | After ... => ... [match] | patterns.cs:102:18:102:24 | "small" | semmle.label | successor |
|
||||
| patterns.cs:102:18:102:24 | "small" | patterns.cs:100:20:103:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:105:9:105:27 | ... ...; | patterns.cs:105:13:105:18 | Before Int32 x0 = ... | semmle.label | successor |
|
||||
| patterns.cs:105:9:105:27 | After ... ...; | patterns.cs:108:9:112:10 | ...; | semmle.label | successor |
|
||||
@@ -60,13 +63,14 @@
|
||||
| patterns.cs:108:29:108:30 | access to local variable y0 | patterns.cs:108:24:108:31 | (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:17 | ( ... ) | patterns.cs:110:13:110:17 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:17 | After ( ... ) | patterns.cs:110:13:110:17 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:17 | After { ... } | patterns.cs:110:22:110:26 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:17 | After { ... } [match] | patterns.cs:110:13:110:26 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:110:13:110:17 | After { ... } [no-match] | patterns.cs:110:13:110:26 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:110:13:110:17 | Before ( ... ) | patterns.cs:110:14:110:14 | 0 | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:17 | Before { ... } | patterns.cs:110:13:110:17 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:17 | { ... } | patterns.cs:110:13:110:17 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:26 | ... => ... | patterns.cs:110:13:110:26 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:110:13:110:26 | ... => ... | patterns.cs:110:13:110:26 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:110:13:110:26 | After ... => ... [match] | patterns.cs:110:13:110:17 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:17 | { ... } | patterns.cs:110:13:110:17 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:110:13:110:17 | { ... } | patterns.cs:110:13:110:17 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:110:13:110:26 | ... => ... | patterns.cs:110:13:110:17 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:26 | After ... => ... [match] | patterns.cs:110:22:110:26 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:110:13:110:26 | After ... => ... [no-match] | patterns.cs:111:13:111:26 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:110:14:110:14 | 0 | patterns.cs:110:16:110:16 | 1 | semmle.label | successor |
|
||||
| patterns.cs:110:16:110:16 | 1 | patterns.cs:110:13:110:17 | ( ... ) | semmle.label | successor |
|
||||
@@ -77,13 +81,14 @@
|
||||
| patterns.cs:110:25:110:25 | 0 | patterns.cs:110:22:110:26 | (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:13:111:17 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:17 | After ( ... ) | patterns.cs:111:13:111:17 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:17 | After { ... } | patterns.cs:111:22:111:26 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:17 | After { ... } [match] | patterns.cs:111:13:111:26 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:111:13:111:17 | After { ... } [no-match] | patterns.cs:111:13:111:26 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:111:13:111:17 | Before ( ... ) | patterns.cs:111:14:111:14 | 1 | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:17 | Before { ... } | patterns.cs:111:13:111:17 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:17 | { ... } | patterns.cs:111:13:111:17 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:26 | ... => ... | patterns.cs:111:13:111:26 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:111:13:111:26 | ... => ... | patterns.cs:111:13:111:26 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:111:13:111:26 | After ... => ... [match] | patterns.cs:111:13:111:17 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:17 | { ... } | patterns.cs:111:13:111:17 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:111:13:111:17 | { ... } | patterns.cs:111:13:111:17 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:111:13:111:26 | ... => ... | patterns.cs:111:13:111:17 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:26 | After ... => ... [match] | patterns.cs:111:22:111:26 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:111:13:111:26 | After ... => ... [no-match] | patterns.cs:108:24:112:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:111:14:111:14 | 1 | patterns.cs:111:16:111:16 | 0 | semmle.label | successor |
|
||||
| patterns.cs:111:16:111:16 | 0 | patterns.cs:111:13:111:17 | ( ... ) | semmle.label | successor |
|
||||
@@ -111,13 +116,14 @@
|
||||
| patterns.cs:115:25:115:26 | access to local variable y0 | patterns.cs:115:20:115:27 | (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:22 | ( ... ) | patterns.cs:117:13:117:22 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:22 | After ( ... ) | patterns.cs:117:13:117:22 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:22 | After { ... } | patterns.cs:117:27:117:33 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:22 | After { ... } [match] | patterns.cs:117:13:117:33 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:117:13:117:22 | After { ... } [no-match] | patterns.cs:117:13:117:33 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:117:13:117:22 | Before ( ... ) | patterns.cs:117:14:117:14 | 0 | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:22 | Before { ... } | patterns.cs:117:13:117:22 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:22 | { ... } | patterns.cs:117:13:117:22 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:33 | ... => ... | patterns.cs:117:13:117:33 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:117:13:117:33 | ... => ... | patterns.cs:117:13:117:33 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:117:13:117:33 | After ... => ... [match] | patterns.cs:117:13:117:22 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:22 | { ... } | patterns.cs:117:13:117:22 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:117:13:117:22 | { ... } | patterns.cs:117:13:117:22 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:117:13:117:33 | ... => ... | patterns.cs:117:13:117:22 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:33 | After ... => ... [match] | patterns.cs:117:27:117:33 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:117:13:117:33 | After ... => ... [no-match] | patterns.cs:118:13:118:34 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:117:14:117:14 | 0 | patterns.cs:117:16:117:21 | Int32 y2 | semmle.label | successor |
|
||||
| patterns.cs:117:16:117:21 | Int32 y2 | patterns.cs:117:13:117:22 | ( ... ) | semmle.label | successor |
|
||||
@@ -128,13 +134,14 @@
|
||||
| patterns.cs:117:32:117:32 | 0 | patterns.cs:117:27:117:33 | (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:23 | ( ... ) | patterns.cs:118:13:118:23 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:23 | After ( ... ) | patterns.cs:118:13:118:23 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:23 | After { ... } | patterns.cs:118:28:118:34 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:23 | After { ... } [match] | patterns.cs:118:13:118:34 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:118:13:118:23 | After { ... } [no-match] | patterns.cs:118:13:118:34 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:118:13:118:23 | Before ( ... ) | patterns.cs:118:14:118:19 | Int32 x2 | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:23 | Before { ... } | patterns.cs:118:13:118:23 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:23 | { ... } | patterns.cs:118:13:118:23 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:34 | ... => ... | patterns.cs:118:13:118:34 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:118:13:118:34 | ... => ... | patterns.cs:118:13:118:34 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:118:13:118:34 | After ... => ... [match] | patterns.cs:118:13:118:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:23 | { ... } | patterns.cs:118:13:118:23 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:118:13:118:23 | { ... } | patterns.cs:118:13:118:23 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:118:13:118:34 | ... => ... | patterns.cs:118:13:118:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:34 | After ... => ... [match] | patterns.cs:118:28:118:34 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:118:13:118:34 | After ... => ... [no-match] | patterns.cs:119:13:119:38 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:118:14:118:19 | Int32 x2 | patterns.cs:118:22:118:22 | 0 | semmle.label | successor |
|
||||
| patterns.cs:118:22:118:22 | 0 | patterns.cs:118:13:118:23 | ( ... ) | semmle.label | successor |
|
||||
@@ -145,13 +152,14 @@
|
||||
| patterns.cs:118:32:118:33 | access to local variable x2 | patterns.cs:118:28:118:34 | (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:13:119:28 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:28 | After ( ... ) | patterns.cs:119:13:119:28 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:28 | After { ... } | patterns.cs:119:33:119:38 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:28 | After { ... } [match] | patterns.cs:119:13:119:38 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:119:13:119:28 | After { ... } [no-match] | patterns.cs:119:13:119:38 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:119:13:119:28 | Before ( ... ) | patterns.cs:119:14:119:19 | Int32 x2 | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:28 | Before { ... } | patterns.cs:119:13:119:28 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:28 | { ... } | patterns.cs:119:13:119:28 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:38 | ... => ... | patterns.cs:119:13:119:38 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:119:13:119:38 | ... => ... | patterns.cs:119:13:119:38 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:119:13:119:38 | After ... => ... [match] | patterns.cs:119:13:119:28 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:28 | { ... } | patterns.cs:119:13:119:28 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:119:13:119:28 | { ... } | patterns.cs:119:13:119:28 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:119:13:119:38 | ... => ... | patterns.cs:119:13:119:28 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:38 | After ... => ... [match] | patterns.cs:119:33:119:38 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:119:13:119:38 | After ... => ... [no-match] | patterns.cs:115:20:120:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:22:119:27 | Int32 y2 | semmle.label | successor |
|
||||
| patterns.cs:119:22:119:27 | Int32 y2 | patterns.cs:119:13:119:28 | ( ... ) | semmle.label | successor |
|
||||
@@ -193,12 +201,13 @@
|
||||
| patterns.cs:126:17:132:9 | ... switch { ... } | patterns.cs:126:17:126:17 | access to local variable s | semmle.label | successor |
|
||||
| patterns.cs:126:17:132:9 | After ... switch { ... } | patterns.cs:126:13:132:9 | Int32 r = ... | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:20 | access to type MyStruct | patterns.cs:128:22:128:33 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:33 | After { ... } | patterns.cs:128:40:128:44 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:33 | After { ... } [match] | patterns.cs:128:13:128:49 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:128:13:128:33 | After { ... } [no-match] | patterns.cs:128:13:128:49 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:128:13:128:33 | Before { ... } | patterns.cs:128:13:128:20 | access to type MyStruct | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:33 | { ... } | patterns.cs:128:13:128:33 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:49 | ... => ... | patterns.cs:128:13:128:49 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:128:13:128:49 | ... => ... | patterns.cs:128:13:128:49 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:128:13:128:49 | After ... => ... [match] | patterns.cs:128:13:128:33 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:33 | { ... } | patterns.cs:128:13:128:33 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:128:13:128:33 | { ... } | patterns.cs:128:13:128:33 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:128:13:128:49 | ... => ... | patterns.cs:128:13:128:33 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:49 | After ... => ... [match] | patterns.cs:128:40:128:44 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:128:13:128:49 | After ... => ... [no-match] | patterns.cs:129:13:129:38 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:128:22:128:33 | After { ... } | patterns.cs:128:13:128:33 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:128:22:128:33 | Before { ... } | patterns.cs:128:27:128:31 | Int32 x | semmle.label | successor |
|
||||
@@ -213,13 +222,14 @@
|
||||
| patterns.cs:128:44:128:44 | 2 | patterns.cs:128:40:128:44 | ... > ... | semmle.label | successor |
|
||||
| patterns.cs:128:49:128:49 | 0 | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:20 | access to type MyStruct | patterns.cs:129:22:129:30 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:33 | After { ... } | patterns.cs:129:38:129:38 | 1 | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:33 | After { ... } [match] | patterns.cs:129:13:129:38 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:129:13:129:33 | After { ... } [no-match] | patterns.cs:129:13:129:38 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:129:13:129:33 | Before { ... } | patterns.cs:129:13:129:33 | MyStruct ms | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:33 | MyStruct ms | patterns.cs:129:13:129:20 | access to type MyStruct | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:33 | { ... } | patterns.cs:129:13:129:33 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:38 | ... => ... | patterns.cs:129:13:129:38 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:129:13:129:38 | ... => ... | patterns.cs:129:13:129:38 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:129:13:129:38 | After ... => ... [match] | patterns.cs:129:13:129:33 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:33 | { ... } | patterns.cs:129:13:129:33 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:129:13:129:33 | { ... } | patterns.cs:129:13:129:33 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:129:13:129:38 | ... => ... | patterns.cs:129:13:129:33 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:38 | After ... => ... [match] | patterns.cs:129:38:129:38 | 1 | semmle.label | successor |
|
||||
| patterns.cs:129:13:129:38 | After ... => ... [no-match] | patterns.cs:130:13:130:23 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:129:22:129:30 | After { ... } | patterns.cs:129:13:129:33 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:129:22:129:30 | Before { ... } | patterns.cs:129:27:129:28 | 10 | semmle.label | successor |
|
||||
@@ -228,23 +238,25 @@
|
||||
| patterns.cs:129:38:129:38 | 1 | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:18 | ( ... ) | patterns.cs:130:13:130:18 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:18 | After ( ... ) | patterns.cs:130:13:130:18 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:18 | After { ... } | patterns.cs:130:23:130:23 | 2 | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:18 | After { ... } [match] | patterns.cs:130:13:130:23 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:130:13:130:18 | After { ... } [no-match] | patterns.cs:130:13:130:23 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:130:13:130:18 | Before ( ... ) | patterns.cs:130:14:130:14 | 1 | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:18 | Before { ... } | patterns.cs:130:13:130:18 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:18 | { ... } | patterns.cs:130:13:130:18 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:23 | ... => ... | patterns.cs:130:13:130:23 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:130:13:130:23 | ... => ... | patterns.cs:130:13:130:23 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:130:13:130:23 | After ... => ... [match] | patterns.cs:130:13:130:18 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:18 | { ... } | patterns.cs:130:13:130:18 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:130:13:130:18 | { ... } | patterns.cs:130:13:130:18 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:130:13:130:23 | ... => ... | patterns.cs:130:13:130:18 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:23 | After ... => ... [match] | patterns.cs:130:23:130:23 | 2 | semmle.label | successor |
|
||||
| patterns.cs:130:13:130:23 | After ... => ... [no-match] | patterns.cs:131:13:131:27 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:130:14:130:14 | 1 | patterns.cs:130:17:130:17 | 2 | semmle.label | successor |
|
||||
| patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:130:23:130:23 | 2 | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:131:13:131:22 | After (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:131:13:131:22 | After (..., ...) | patterns.cs:131:27:131:27 | 3 | semmle.label | successor |
|
||||
| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:131:13:131:22 | After (..., ...) [match] | semmle.label | match |
|
||||
| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:131:13:131:22 | After (..., ...) [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:131:13:131:22 | After (..., ...) [match] | patterns.cs:131:13:131:27 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:131:13:131:22 | After (..., ...) [no-match] | patterns.cs:131:13:131:27 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:131:13:131:22 | Before (..., ...) | patterns.cs:131:18:131:18 | Int32 x | semmle.label | successor |
|
||||
| patterns.cs:131:13:131:27 | ... => ... | patterns.cs:131:13:131:27 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:131:13:131:27 | ... => ... | patterns.cs:131:13:131:27 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:131:13:131:27 | After ... => ... [match] | patterns.cs:131:13:131:22 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:131:13:131:27 | ... => ... | patterns.cs:131:13:131:22 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:131:13:131:27 | After ... => ... [match] | patterns.cs:131:27:131:27 | 3 | semmle.label | successor |
|
||||
| patterns.cs:131:13:131:27 | After ... => ... [no-match] | patterns.cs:126:17:132:9 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:131:18:131:18 | Int32 x | patterns.cs:131:21:131:21 | _ | semmle.label | successor |
|
||||
| patterns.cs:131:21:131:21 | _ | patterns.cs:131:13:131:22 | (..., ...) | semmle.label | successor |
|
||||
@@ -262,10 +274,12 @@
|
||||
| patterns.cs:136:17:136:17 | access to parameter o | patterns.cs:138:17:138:50 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:136:17:143:13 | ... switch { ... } | patterns.cs:136:17:136:17 | access to parameter o | semmle.label | successor |
|
||||
| patterns.cs:136:17:143:13 | After ... switch { ... } | patterns.cs:136:13:143:13 | ... = ... | semmle.label | successor |
|
||||
| patterns.cs:138:17:138:17 | 1 | patterns.cs:138:22:138:50 | Before throw ... | semmle.label | successor |
|
||||
| patterns.cs:138:17:138:50 | ... => ... | patterns.cs:138:17:138:50 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:138:17:138:50 | ... => ... | patterns.cs:138:17:138:50 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:138:17:138:50 | After ... => ... [match] | patterns.cs:138:17:138:17 | 1 | semmle.label | successor |
|
||||
| patterns.cs:138:17:138:17 | 1 | patterns.cs:138:17:138:17 | After 1 [match] | semmle.label | match |
|
||||
| patterns.cs:138:17:138:17 | 1 | patterns.cs:138:17:138:17 | After 1 [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:138:17:138:17 | After 1 [match] | patterns.cs:138:17:138:50 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:138:17:138:17 | After 1 [no-match] | patterns.cs:138:17:138:50 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:138:17:138:50 | ... => ... | patterns.cs:138:17:138:17 | 1 | semmle.label | successor |
|
||||
| patterns.cs:138:17:138:50 | After ... => ... [match] | patterns.cs:138:22:138:50 | Before throw ... | semmle.label | successor |
|
||||
| patterns.cs:138:17:138:50 | After ... => ... [no-match] | patterns.cs:139:17:139:22 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:138:22:138:50 | Before throw ... | patterns.cs:138:28:138:50 | Before object creation of type ArgumentException | semmle.label | successor |
|
||||
| patterns.cs:138:22:138:50 | throw ... | patterns.cs:145:9:148:9 | catch (...) {...} | semmle.label | exception |
|
||||
@@ -273,16 +287,20 @@
|
||||
| patterns.cs:138:28:138:50 | Before object creation of type ArgumentException | patterns.cs:138:28:138:50 | object creation of type ArgumentException | semmle.label | successor |
|
||||
| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:138:28:138:50 | After object creation of type ArgumentException | semmle.label | successor |
|
||||
| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:145:9:148:9 | catch (...) {...} | semmle.label | exception |
|
||||
| patterns.cs:139:17:139:17 | 2 | patterns.cs:139:22:139:22 | 3 | semmle.label | successor |
|
||||
| patterns.cs:139:17:139:22 | ... => ... | patterns.cs:139:17:139:22 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:139:17:139:22 | ... => ... | patterns.cs:139:17:139:22 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:139:17:139:22 | After ... => ... [match] | patterns.cs:139:17:139:17 | 2 | semmle.label | successor |
|
||||
| patterns.cs:139:17:139:17 | 2 | patterns.cs:139:17:139:17 | After 2 [match] | semmle.label | match |
|
||||
| patterns.cs:139:17:139:17 | 2 | patterns.cs:139:17:139:17 | After 2 [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:139:17:139:17 | After 2 [match] | patterns.cs:139:17:139:22 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:139:17:139:17 | After 2 [no-match] | patterns.cs:139:17:139:22 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:139:17:139:22 | ... => ... | patterns.cs:139:17:139:17 | 2 | semmle.label | successor |
|
||||
| patterns.cs:139:17:139:22 | After ... => ... [match] | patterns.cs:139:22:139:22 | 3 | semmle.label | successor |
|
||||
| patterns.cs:139:17:139:22 | After ... => ... [no-match] | patterns.cs:140:17:140:42 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:139:22:139:22 | 3 | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:140:17:140:24 | Object y | patterns.cs:140:31:140:37 | Before ... is ... | semmle.label | successor |
|
||||
| patterns.cs:140:17:140:42 | ... => ... | patterns.cs:140:17:140:42 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:140:17:140:42 | ... => ... | patterns.cs:140:17:140:42 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:140:17:140:42 | After ... => ... [match] | patterns.cs:140:17:140:24 | Object y | semmle.label | successor |
|
||||
| patterns.cs:140:17:140:24 | After Object y [match] | patterns.cs:140:17:140:42 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:140:17:140:24 | After Object y [no-match] | patterns.cs:140:17:140:42 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:140:17:140:24 | Object y | patterns.cs:140:17:140:24 | After Object y [match] | semmle.label | match |
|
||||
| patterns.cs:140:17:140:24 | Object y | patterns.cs:140:17:140:24 | After Object y [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:140:17:140:42 | ... => ... | patterns.cs:140:17:140:24 | Object y | semmle.label | successor |
|
||||
| patterns.cs:140:17:140:42 | After ... => ... [match] | patterns.cs:140:31:140:37 | Before ... is ... | semmle.label | successor |
|
||||
| patterns.cs:140:17:140:42 | After ... => ... [no-match] | patterns.cs:141:17:141:29 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:140:31:140:31 | access to local variable y | patterns.cs:140:31:140:37 | ... is ... | semmle.label | successor |
|
||||
| patterns.cs:140:31:140:37 | ... is ... | patterns.cs:140:31:140:37 | After ... is ... [false] | semmle.label | false |
|
||||
@@ -296,19 +314,22 @@
|
||||
| patterns.cs:140:36:140:37 | { ... } | patterns.cs:140:36:140:37 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:140:36:140:37 | { ... } | patterns.cs:140:36:140:37 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:140:42:140:42 | 4 | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:141:17:141:22 | access to type String | patterns.cs:141:29:141:29 | 5 | semmle.label | successor |
|
||||
| patterns.cs:141:17:141:29 | ... => ... | patterns.cs:141:17:141:29 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:141:17:141:29 | ... => ... | patterns.cs:141:17:141:29 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:141:17:141:29 | After ... => ... [match] | patterns.cs:141:17:141:22 | access to type String | semmle.label | successor |
|
||||
| patterns.cs:141:17:141:22 | After access to type String [match] | patterns.cs:141:17:141:29 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:141:17:141:22 | After access to type String [no-match] | patterns.cs:141:17:141:29 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:141:17:141:22 | access to type String | patterns.cs:141:17:141:22 | After access to type String [match] | semmle.label | match |
|
||||
| patterns.cs:141:17:141:22 | access to type String | patterns.cs:141:17:141:22 | After access to type String [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:141:17:141:29 | ... => ... | patterns.cs:141:17:141:22 | access to type String | semmle.label | successor |
|
||||
| patterns.cs:141:17:141:29 | After ... => ... [match] | patterns.cs:141:29:141:29 | 5 | semmle.label | successor |
|
||||
| patterns.cs:141:17:141:29 | After ... => ... [no-match] | patterns.cs:142:17:142:41 | ... => ... | semmle.label | successor |
|
||||
| patterns.cs:141:29:141:29 | 5 | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:26:142:34 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:36 | After { ... } | patterns.cs:142:41:142:41 | 6 | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:36 | After { ... } [match] | patterns.cs:142:17:142:41 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:142:17:142:36 | After { ... } [no-match] | patterns.cs:142:17:142:41 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:142:17:142:36 | Before { ... } | patterns.cs:142:17:142:24 | access to type MyStruct | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:36 | { ... } | patterns.cs:142:17:142:36 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:41 | ... => ... | patterns.cs:142:17:142:41 | After ... => ... [match] | semmle.label | match |
|
||||
| patterns.cs:142:17:142:41 | ... => ... | patterns.cs:142:17:142:41 | After ... => ... [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:142:17:142:41 | After ... => ... [match] | patterns.cs:142:17:142:36 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:36 | { ... } | patterns.cs:142:17:142:36 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:142:17:142:36 | { ... } | patterns.cs:142:17:142:36 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:142:17:142:41 | ... => ... | patterns.cs:142:17:142:36 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:41 | After ... => ... [match] | patterns.cs:142:41:142:41 | 6 | semmle.label | successor |
|
||||
| patterns.cs:142:17:142:41 | After ... => ... [no-match] | patterns.cs:136:17:143:13 | After ... switch { ... } | semmle.label | successor |
|
||||
| patterns.cs:142:26:142:34 | After { ... } | patterns.cs:142:17:142:36 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:142:26:142:34 | Before { ... } | patterns.cs:142:31:142:32 | 10 | semmle.label | successor |
|
||||
|
||||
@@ -22,11 +22,13 @@
|
||||
| patterns.cs:36:9:44:9 | After switch (...) {...} | patterns.cs:46:9:63:9 | switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:36:9:44:9 | switch (...) {...} | patterns.cs:36:17:36:17 | access to local variable s | semmle.label | successor |
|
||||
| patterns.cs:36:17:36:17 | access to local variable s | patterns.cs:38:13:38:47 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:38:13:38:47 | After case ...: [match] | patterns.cs:38:18:38:29 | MyStruct ms1 | semmle.label | successor |
|
||||
| patterns.cs:38:13:38:47 | After case ...: [match] | patterns.cs:38:36:38:46 | Before ... == ... | semmle.label | successor |
|
||||
| patterns.cs:38:13:38:47 | After case ...: [no-match] | patterns.cs:41:13:41:46 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:13:38:47 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:13:38:47 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:38:18:38:29 | MyStruct ms1 | patterns.cs:38:36:38:46 | Before ... == ... | semmle.label | successor |
|
||||
| patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:18:38:29 | MyStruct ms1 | semmle.label | successor |
|
||||
| patterns.cs:38:18:38:29 | After MyStruct ms1 [match] | patterns.cs:38:13:38:47 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:38:18:38:29 | After MyStruct ms1 [no-match] | patterns.cs:38:13:38:47 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:38:18:38:29 | MyStruct ms1 | patterns.cs:38:18:38:29 | After MyStruct ms1 [match] | semmle.label | match |
|
||||
| patterns.cs:38:18:38:29 | MyStruct ms1 | patterns.cs:38:18:38:29 | After MyStruct ms1 [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:38:36:38:38 | access to local variable ms1 | patterns.cs:38:36:38:40 | access to field X | semmle.label | successor |
|
||||
| patterns.cs:38:36:38:40 | After access to field X | patterns.cs:38:45:38:46 | 10 | semmle.label | successor |
|
||||
| patterns.cs:38:36:38:40 | Before access to field X | patterns.cs:38:36:38:38 | access to local variable ms1 | semmle.label | successor |
|
||||
@@ -45,11 +47,13 @@
|
||||
| patterns.cs:39:35:39:54 | "Hit the breakpoint" | patterns.cs:39:17:39:55 | call to method WriteLine | semmle.label | successor |
|
||||
| patterns.cs:40:17:40:22 | Before break; | patterns.cs:40:17:40:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:40:17:40:22 | break; | patterns.cs:36:9:44:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:41:13:41:46 | After case ...: [match] | patterns.cs:41:18:41:29 | MyStruct ms2 | semmle.label | successor |
|
||||
| patterns.cs:41:13:41:46 | After case ...: [match] | patterns.cs:41:36:41:45 | Before ... < ... | semmle.label | successor |
|
||||
| patterns.cs:41:13:41:46 | After case ...: [no-match] | patterns.cs:36:9:44:9 | After switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:41:13:41:46 | case ...: | patterns.cs:41:13:41:46 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:41:13:41:46 | case ...: | patterns.cs:41:13:41:46 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:41:18:41:29 | MyStruct ms2 | patterns.cs:41:36:41:45 | Before ... < ... | semmle.label | successor |
|
||||
| patterns.cs:41:13:41:46 | case ...: | patterns.cs:41:18:41:29 | MyStruct ms2 | semmle.label | successor |
|
||||
| patterns.cs:41:18:41:29 | After MyStruct ms2 [match] | patterns.cs:41:13:41:46 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:41:18:41:29 | After MyStruct ms2 [no-match] | patterns.cs:41:13:41:46 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:41:18:41:29 | MyStruct ms2 | patterns.cs:41:18:41:29 | After MyStruct ms2 [match] | semmle.label | match |
|
||||
| patterns.cs:41:18:41:29 | MyStruct ms2 | patterns.cs:41:18:41:29 | After MyStruct ms2 [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:41:36:41:38 | access to local variable ms2 | patterns.cs:41:36:41:40 | access to field X | semmle.label | successor |
|
||||
| patterns.cs:41:36:41:40 | After access to field X | patterns.cs:41:44:41:45 | 10 | semmle.label | successor |
|
||||
| patterns.cs:41:36:41:40 | Before access to field X | patterns.cs:41:36:41:38 | access to local variable ms2 | semmle.label | successor |
|
||||
@@ -71,14 +75,15 @@
|
||||
| patterns.cs:46:9:63:9 | After switch (...) {...} | patterns.cs:65:9:73:9 | switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:46:9:63:9 | switch (...) {...} | patterns.cs:46:17:46:17 | access to local variable s | semmle.label | successor |
|
||||
| patterns.cs:46:17:46:17 | access to local variable s | patterns.cs:48:13:48:50 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:48:13:48:50 | After case ...: [match] | patterns.cs:48:18:48:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:48:13:48:50 | After case ...: [match] | patterns.cs:48:45:48:49 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:48:13:48:50 | After case ...: [no-match] | patterns.cs:51:13:51:39 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:48:13:48:50 | case ...: | patterns.cs:48:13:48:50 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:48:13:48:50 | case ...: | patterns.cs:48:13:48:50 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:48:13:48:50 | case ...: | patterns.cs:48:18:48:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:48:18:48:25 | access to type MyStruct | patterns.cs:48:27:48:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:48:18:48:38 | After { ... } | patterns.cs:48:45:48:49 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:48:18:48:38 | After { ... } [match] | patterns.cs:48:13:48:50 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:48:18:48:38 | After { ... } [no-match] | patterns.cs:48:13:48:50 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:48:18:48:38 | Before { ... } | patterns.cs:48:18:48:25 | access to type MyStruct | semmle.label | successor |
|
||||
| patterns.cs:48:18:48:38 | { ... } | patterns.cs:48:18:48:38 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:48:18:48:38 | { ... } | patterns.cs:48:18:48:38 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:48:18:48:38 | { ... } | patterns.cs:48:18:48:38 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:48:27:48:38 | After { ... } | patterns.cs:48:18:48:38 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:48:27:48:38 | Before { ... } | patterns.cs:48:32:48:36 | Int32 x | semmle.label | successor |
|
||||
| patterns.cs:48:27:48:38 | { ... } | patterns.cs:48:27:48:38 | After { ... } | semmle.label | successor |
|
||||
@@ -98,15 +103,16 @@
|
||||
| patterns.cs:49:35:49:35 | access to local variable x | patterns.cs:49:17:49:36 | call to method WriteLine | semmle.label | successor |
|
||||
| patterns.cs:50:17:50:22 | Before break; | patterns.cs:50:17:50:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:50:17:50:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:51:13:51:39 | After case ...: [match] | patterns.cs:51:18:51:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:51:13:51:39 | After case ...: [match] | patterns.cs:52:17:52:56 | ...; | semmle.label | successor |
|
||||
| patterns.cs:51:13:51:39 | After case ...: [no-match] | patterns.cs:54:13:54:43 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:51:13:51:39 | case ...: | patterns.cs:51:13:51:39 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:51:13:51:39 | case ...: | patterns.cs:51:13:51:39 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:51:13:51:39 | case ...: | patterns.cs:51:18:51:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:51:18:51:25 | access to type MyStruct | patterns.cs:51:27:51:35 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:51:18:51:38 | After { ... } | patterns.cs:52:17:52:56 | ...; | semmle.label | successor |
|
||||
| patterns.cs:51:18:51:38 | After { ... } [match] | patterns.cs:51:13:51:39 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:51:18:51:38 | After { ... } [no-match] | patterns.cs:51:13:51:39 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:51:18:51:38 | Before { ... } | patterns.cs:51:18:51:38 | MyStruct ms | semmle.label | successor |
|
||||
| patterns.cs:51:18:51:38 | MyStruct ms | patterns.cs:51:18:51:25 | access to type MyStruct | semmle.label | successor |
|
||||
| patterns.cs:51:18:51:38 | { ... } | patterns.cs:51:18:51:38 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:51:18:51:38 | { ... } | patterns.cs:51:18:51:38 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:51:18:51:38 | { ... } | patterns.cs:51:18:51:38 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:51:27:51:35 | After { ... } | patterns.cs:51:18:51:38 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:51:27:51:35 | Before { ... } | patterns.cs:51:32:51:33 | 10 | semmle.label | successor |
|
||||
| patterns.cs:51:27:51:35 | { ... } | patterns.cs:51:27:51:35 | After { ... } | semmle.label | successor |
|
||||
@@ -119,16 +125,17 @@
|
||||
| patterns.cs:52:35:52:54 | "Hit the breakpoint" | patterns.cs:52:17:52:55 | call to method WriteLine | semmle.label | successor |
|
||||
| patterns.cs:53:17:53:22 | Before break; | patterns.cs:53:17:53:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:53:17:53:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:54:13:54:43 | After case ...: [match] | patterns.cs:54:18:54:30 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:54:13:54:43 | After case ...: [match] | patterns.cs:54:37:54:42 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:54:13:54:43 | After case ...: [no-match] | patterns.cs:57:13:57:24 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:54:13:54:43 | case ...: | patterns.cs:54:13:54:43 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:54:13:54:43 | case ...: | patterns.cs:54:13:54:43 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:54:13:54:43 | case ...: | patterns.cs:54:18:54:30 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:54:18:54:30 | After { ... } | patterns.cs:54:18:54:30 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:54:18:54:30 | After { ... } | patterns.cs:54:37:54:42 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:54:18:54:30 | After { ... } [match] | patterns.cs:54:13:54:43 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:54:18:54:30 | After { ... } [no-match] | patterns.cs:54:13:54:43 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:54:18:54:30 | Before { ... } | patterns.cs:54:18:54:30 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:54:18:54:30 | Before { ... } | patterns.cs:54:23:54:28 | Int32 x2 | semmle.label | successor |
|
||||
| patterns.cs:54:18:54:30 | { ... } | patterns.cs:54:18:54:30 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:54:18:54:30 | { ... } | patterns.cs:54:18:54:30 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:54:18:54:30 | { ... } | patterns.cs:54:18:54:30 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:54:18:54:30 | { ... } | patterns.cs:54:18:54:30 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:54:23:54:28 | Int32 x2 | patterns.cs:54:18:54:30 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:54:37:54:38 | access to local variable x2 | patterns.cs:54:42:54:42 | 2 | semmle.label | successor |
|
||||
| patterns.cs:54:37:54:42 | ... > ... | patterns.cs:54:37:54:42 | After ... > ... [false] | semmle.label | false |
|
||||
@@ -145,26 +152,28 @@
|
||||
| patterns.cs:55:35:55:36 | access to local variable x2 | patterns.cs:55:17:55:37 | call to method WriteLine | semmle.label | successor |
|
||||
| patterns.cs:56:17:56:22 | Before break; | patterns.cs:56:17:56:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:56:17:56:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:57:13:57:24 | After case ...: [match] | patterns.cs:57:18:57:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:57:13:57:24 | After case ...: [match] | patterns.cs:58:17:58:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:57:13:57:24 | After case ...: [no-match] | patterns.cs:59:13:59:28 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:57:13:57:24 | case ...: | patterns.cs:57:13:57:24 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:57:13:57:24 | case ...: | patterns.cs:57:13:57:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:57:13:57:24 | case ...: | patterns.cs:57:18:57:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:57:18:57:23 | ( ... ) | patterns.cs:57:18:57:23 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:57:18:57:23 | After ( ... ) | patterns.cs:57:18:57:23 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:57:18:57:23 | After { ... } | patterns.cs:58:17:58:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:57:18:57:23 | After { ... } [match] | patterns.cs:57:13:57:24 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:57:18:57:23 | After { ... } [no-match] | patterns.cs:57:13:57:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:57:18:57:23 | Before ( ... ) | patterns.cs:57:19:57:19 | 1 | semmle.label | successor |
|
||||
| patterns.cs:57:18:57:23 | Before { ... } | patterns.cs:57:18:57:23 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:57:18:57:23 | { ... } | patterns.cs:57:18:57:23 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:57:18:57:23 | { ... } | patterns.cs:57:18:57:23 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:57:18:57:23 | { ... } | patterns.cs:57:18:57:23 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:57:19:57:19 | 1 | patterns.cs:57:22:57:22 | 2 | semmle.label | successor |
|
||||
| patterns.cs:57:22:57:22 | 2 | patterns.cs:57:18:57:23 | ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:58:17:58:22 | Before break; | patterns.cs:58:17:58:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:58:17:58:22 | break; | patterns.cs:46:9:63:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:59:13:59:28 | After case ...: [match] | patterns.cs:59:18:59:27 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:59:13:59:28 | After case ...: [match] | patterns.cs:60:17:60:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:59:13:59:28 | After case ...: [no-match] | patterns.cs:61:13:61:20 | default: | semmle.label | successor |
|
||||
| patterns.cs:59:13:59:28 | case ...: | patterns.cs:59:13:59:28 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:59:13:59:28 | case ...: | patterns.cs:59:13:59:28 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:59:18:59:27 | (..., ...) | patterns.cs:59:18:59:27 | After (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:59:18:59:27 | After (..., ...) | patterns.cs:60:17:60:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:59:13:59:28 | case ...: | patterns.cs:59:18:59:27 | Before (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:59:18:59:27 | (..., ...) | patterns.cs:59:18:59:27 | After (..., ...) [match] | semmle.label | match |
|
||||
| patterns.cs:59:18:59:27 | (..., ...) | patterns.cs:59:18:59:27 | After (..., ...) [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:59:18:59:27 | After (..., ...) [match] | patterns.cs:59:13:59:28 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:59:18:59:27 | After (..., ...) [no-match] | patterns.cs:59:13:59:28 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:59:18:59:27 | Before (..., ...) | patterns.cs:59:23:59:23 | Int32 x | semmle.label | successor |
|
||||
| patterns.cs:59:23:59:23 | Int32 x | patterns.cs:59:26:59:26 | Int32 y | semmle.label | successor |
|
||||
| patterns.cs:59:26:59:26 | Int32 y | patterns.cs:59:18:59:27 | (..., ...) | semmle.label | successor |
|
||||
@@ -177,14 +186,15 @@
|
||||
| patterns.cs:65:9:73:9 | After switch (...) {...} | patterns.cs:76:9:84:9 | switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:65:9:73:9 | switch (...) {...} | patterns.cs:65:17:65:17 | access to local variable s | semmle.label | successor |
|
||||
| patterns.cs:65:17:65:17 | access to local variable s | patterns.cs:67:13:67:50 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:67:13:67:50 | After case ...: [match] | patterns.cs:67:18:67:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:67:13:67:50 | After case ...: [match] | patterns.cs:67:45:67:49 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:67:13:67:50 | After case ...: [no-match] | patterns.cs:70:13:70:51 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:67:13:67:50 | case ...: | patterns.cs:67:13:67:50 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:67:13:67:50 | case ...: | patterns.cs:67:13:67:50 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:67:13:67:50 | case ...: | patterns.cs:67:18:67:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:67:18:67:25 | access to type MyStruct | patterns.cs:67:27:67:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:67:18:67:38 | After { ... } | patterns.cs:67:45:67:49 | Before ... > ... | semmle.label | successor |
|
||||
| patterns.cs:67:18:67:38 | After { ... } [match] | patterns.cs:67:13:67:50 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:67:18:67:38 | After { ... } [no-match] | patterns.cs:67:13:67:50 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:67:18:67:38 | Before { ... } | patterns.cs:67:18:67:25 | access to type MyStruct | semmle.label | successor |
|
||||
| patterns.cs:67:18:67:38 | { ... } | patterns.cs:67:18:67:38 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:67:18:67:38 | { ... } | patterns.cs:67:18:67:38 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:67:18:67:38 | { ... } | patterns.cs:67:18:67:38 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:67:27:67:38 | After { ... } | patterns.cs:67:18:67:38 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:67:27:67:38 | Before { ... } | patterns.cs:67:32:67:36 | Int32 x | semmle.label | successor |
|
||||
| patterns.cs:67:27:67:38 | { ... } | patterns.cs:67:27:67:38 | After { ... } | semmle.label | successor |
|
||||
@@ -204,15 +214,16 @@
|
||||
| patterns.cs:68:35:68:35 | access to local variable x | patterns.cs:68:17:68:36 | call to method WriteLine | semmle.label | successor |
|
||||
| patterns.cs:69:17:69:22 | Before break; | patterns.cs:69:17:69:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:69:17:69:22 | break; | patterns.cs:65:9:73:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:70:13:70:51 | After case ...: [match] | patterns.cs:70:18:70:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:70:13:70:51 | After case ...: [match] | patterns.cs:70:45:70:50 | Before ... == ... | semmle.label | successor |
|
||||
| patterns.cs:70:13:70:51 | After case ...: [no-match] | patterns.cs:65:9:73:9 | After switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:70:13:70:51 | case ...: | patterns.cs:70:13:70:51 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:70:13:70:51 | case ...: | patterns.cs:70:13:70:51 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:70:13:70:51 | case ...: | patterns.cs:70:18:70:38 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:70:18:70:25 | access to type MyStruct | patterns.cs:70:27:70:35 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:70:18:70:38 | After { ... } | patterns.cs:70:45:70:50 | Before ... == ... | semmle.label | successor |
|
||||
| patterns.cs:70:18:70:38 | After { ... } [match] | patterns.cs:70:13:70:51 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:70:18:70:38 | After { ... } [no-match] | patterns.cs:70:13:70:51 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:70:18:70:38 | Before { ... } | patterns.cs:70:18:70:38 | MyStruct ms | semmle.label | successor |
|
||||
| patterns.cs:70:18:70:38 | MyStruct ms | patterns.cs:70:18:70:25 | access to type MyStruct | semmle.label | successor |
|
||||
| patterns.cs:70:18:70:38 | { ... } | patterns.cs:70:18:70:38 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:70:18:70:38 | { ... } | patterns.cs:70:18:70:38 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:70:18:70:38 | { ... } | patterns.cs:70:18:70:38 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:70:27:70:35 | After { ... } | patterns.cs:70:18:70:38 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:70:27:70:35 | Before { ... } | patterns.cs:70:32:70:33 | 10 | semmle.label | successor |
|
||||
| patterns.cs:70:27:70:35 | { ... } | patterns.cs:70:27:70:35 | After { ... } | semmle.label | successor |
|
||||
@@ -240,16 +251,17 @@
|
||||
| patterns.cs:76:17:76:28 | After object creation of type Object | patterns.cs:78:13:78:43 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:76:17:76:28 | Before object creation of type Object | patterns.cs:76:17:76:28 | object creation of type Object | semmle.label | successor |
|
||||
| patterns.cs:76:17:76:28 | object creation of type Object | patterns.cs:76:17:76:28 | After object creation of type Object | semmle.label | successor |
|
||||
| patterns.cs:78:13:78:43 | After case ...: [match] | patterns.cs:78:18:78:33 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:78:13:78:43 | After case ...: [match] | patterns.cs:78:40:78:42 | Before ... < ... | semmle.label | successor |
|
||||
| patterns.cs:78:13:78:43 | After case ...: [no-match] | patterns.cs:80:13:80:20 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:78:13:78:43 | case ...: | patterns.cs:78:13:78:43 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:78:13:78:43 | case ...: | patterns.cs:78:13:78:43 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:78:13:78:43 | case ...: | patterns.cs:78:18:78:33 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:78:18:78:33 | ( ... ) | patterns.cs:78:18:78:33 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:78:18:78:33 | After ( ... ) | patterns.cs:78:18:78:33 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:78:18:78:33 | After { ... } | patterns.cs:78:40:78:42 | Before ... < ... | semmle.label | successor |
|
||||
| patterns.cs:78:18:78:33 | After { ... } [match] | patterns.cs:78:13:78:43 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:78:18:78:33 | After { ... } [no-match] | patterns.cs:78:13:78:43 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:78:18:78:33 | Before ( ... ) | patterns.cs:78:19:78:23 | Int32 x | semmle.label | successor |
|
||||
| patterns.cs:78:18:78:33 | Before { ... } | patterns.cs:78:18:78:33 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:78:18:78:33 | { ... } | patterns.cs:78:18:78:33 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:78:18:78:33 | { ... } | patterns.cs:78:18:78:33 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:78:18:78:33 | { ... } | patterns.cs:78:18:78:33 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:78:19:78:23 | Int32 x | patterns.cs:78:26:78:32 | Single y | semmle.label | successor |
|
||||
| patterns.cs:78:26:78:32 | Single y | patterns.cs:78:18:78:33 | ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:78:40:78:40 | (...) ... | patterns.cs:78:40:78:40 | After (...) ... | semmle.label | successor |
|
||||
@@ -264,23 +276,25 @@
|
||||
| patterns.cs:78:42:78:42 | access to local variable y | patterns.cs:78:40:78:42 | ... < ... | semmle.label | successor |
|
||||
| patterns.cs:79:17:79:22 | Before break; | patterns.cs:79:17:79:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:79:17:79:22 | break; | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:80:13:80:20 | After case ...: [match] | patterns.cs:80:18:80:19 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:80:13:80:20 | After case ...: [match] | patterns.cs:81:17:81:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:80:13:80:20 | After case ...: [no-match] | patterns.cs:82:13:82:20 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:80:13:80:20 | case ...: | patterns.cs:80:13:80:20 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:80:13:80:20 | case ...: | patterns.cs:80:13:80:20 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:80:13:80:20 | case ...: | patterns.cs:80:18:80:19 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:80:18:80:19 | ( ... ) | patterns.cs:80:18:80:19 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:80:18:80:19 | After { ... } | patterns.cs:81:17:81:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:80:18:80:19 | After { ... } [match] | patterns.cs:80:13:80:20 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:80:18:80:19 | After { ... } [no-match] | patterns.cs:80:13:80:20 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:80:18:80:19 | Before { ... } | patterns.cs:80:18:80:19 | ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:80:18:80:19 | { ... } | patterns.cs:80:18:80:19 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:80:18:80:19 | { ... } | patterns.cs:80:18:80:19 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:80:18:80:19 | { ... } | patterns.cs:80:18:80:19 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:81:17:81:22 | Before break; | patterns.cs:81:17:81:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:81:17:81:22 | break; | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:82:13:82:20 | After case ...: [match] | patterns.cs:82:18:82:19 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:82:13:82:20 | After case ...: [match] | patterns.cs:83:17:83:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:82:13:82:20 | After case ...: [no-match] | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:82:13:82:20 | case ...: | patterns.cs:82:13:82:20 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:82:13:82:20 | case ...: | patterns.cs:82:13:82:20 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:82:18:82:19 | After { ... } | patterns.cs:83:17:83:22 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:82:13:82:20 | case ...: | patterns.cs:82:18:82:19 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:82:18:82:19 | After { ... } [match] | patterns.cs:82:13:82:20 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:82:18:82:19 | After { ... } [no-match] | patterns.cs:82:13:82:20 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:82:18:82:19 | Before { ... } | patterns.cs:82:18:82:19 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:82:18:82:19 | { ... } | patterns.cs:82:18:82:19 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:83:17:83:22 | Before break; | patterns.cs:83:17:83:22 | break; | semmle.label | successor |
|
||||
| patterns.cs:83:17:83:22 | break; | patterns.cs:76:9:84:9 | After switch (...) {...} | semmle.label | break |
|
||||
@@ -291,16 +305,17 @@
|
||||
| patterns.cs:86:15:86:19 | Before (..., ...) | patterns.cs:86:16:86:16 | 1 | semmle.label | successor |
|
||||
| patterns.cs:86:16:86:16 | 1 | patterns.cs:86:18:86:18 | 2 | semmle.label | successor |
|
||||
| patterns.cs:86:18:86:18 | 2 | patterns.cs:86:15:86:19 | (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:88:13:88:24 | After case ...: [match] | patterns.cs:88:18:88:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:88:13:88:24 | After case ...: [match] | patterns.cs:88:26:88:31 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:88:13:88:24 | After case ...: [no-match] | patterns.cs:86:9:89:9 | After switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:88:13:88:24 | case ...: | patterns.cs:88:13:88:24 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:88:13:88:24 | case ...: | patterns.cs:88:13:88:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:88:13:88:24 | case ...: | patterns.cs:88:18:88:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:88:18:88:23 | ( ... ) | patterns.cs:88:18:88:23 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:88:18:88:23 | After ( ... ) | patterns.cs:88:18:88:23 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:88:18:88:23 | After { ... } | patterns.cs:88:26:88:31 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:88:18:88:23 | After { ... } [match] | patterns.cs:88:13:88:24 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:88:18:88:23 | After { ... } [no-match] | patterns.cs:88:13:88:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:88:18:88:23 | Before ( ... ) | patterns.cs:88:19:88:19 | 1 | semmle.label | successor |
|
||||
| patterns.cs:88:18:88:23 | Before { ... } | patterns.cs:88:18:88:23 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:88:18:88:23 | { ... } | patterns.cs:88:18:88:23 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:88:18:88:23 | { ... } | patterns.cs:88:18:88:23 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:88:18:88:23 | { ... } | patterns.cs:88:18:88:23 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:88:19:88:19 | 1 | patterns.cs:88:22:88:22 | 2 | semmle.label | successor |
|
||||
| patterns.cs:88:22:88:22 | 2 | patterns.cs:88:18:88:23 | ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:88:26:88:31 | Before break; | patterns.cs:88:26:88:31 | break; | semmle.label | successor |
|
||||
@@ -312,30 +327,32 @@
|
||||
| patterns.cs:91:16:91:20 | Before (..., ...) | patterns.cs:91:17:91:17 | 1 | semmle.label | successor |
|
||||
| patterns.cs:91:17:91:17 | 1 | patterns.cs:91:19:91:19 | 2 | semmle.label | successor |
|
||||
| patterns.cs:91:19:91:19 | 2 | patterns.cs:91:16:91:20 | (..., ...) | semmle.label | successor |
|
||||
| patterns.cs:93:13:93:28 | After case ...: [match] | patterns.cs:93:18:93:27 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:93:13:93:28 | After case ...: [match] | patterns.cs:93:30:93:35 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:93:13:93:28 | After case ...: [no-match] | patterns.cs:94:13:94:24 | case ...: | semmle.label | successor |
|
||||
| patterns.cs:93:13:93:28 | case ...: | patterns.cs:93:13:93:28 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:93:13:93:28 | case ...: | patterns.cs:93:13:93:28 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:93:13:93:28 | case ...: | patterns.cs:93:18:93:27 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:93:18:93:27 | ( ... ) | patterns.cs:93:18:93:27 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:93:18:93:27 | After ( ... ) | patterns.cs:93:18:93:27 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:93:18:93:27 | After { ... } | patterns.cs:93:30:93:35 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:93:18:93:27 | After { ... } [match] | patterns.cs:93:13:93:28 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:93:18:93:27 | After { ... } [no-match] | patterns.cs:93:13:93:28 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:93:18:93:27 | Before ( ... ) | patterns.cs:93:19:93:19 | 1 | semmle.label | successor |
|
||||
| patterns.cs:93:18:93:27 | Before { ... } | patterns.cs:93:18:93:27 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:93:18:93:27 | { ... } | patterns.cs:93:18:93:27 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:93:18:93:27 | { ... } | patterns.cs:93:18:93:27 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:93:18:93:27 | { ... } | patterns.cs:93:18:93:27 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:93:19:93:19 | 1 | patterns.cs:93:22:93:26 | Int32 x | semmle.label | successor |
|
||||
| patterns.cs:93:22:93:26 | Int32 x | patterns.cs:93:18:93:27 | ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:93:30:93:35 | Before break; | patterns.cs:93:30:93:35 | break; | semmle.label | successor |
|
||||
| patterns.cs:93:30:93:35 | break; | patterns.cs:91:9:95:9 | After switch (...) {...} | semmle.label | break |
|
||||
| patterns.cs:94:13:94:24 | After case ...: [match] | patterns.cs:94:18:94:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:94:13:94:24 | After case ...: [match] | patterns.cs:94:26:94:31 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:94:13:94:24 | After case ...: [no-match] | patterns.cs:91:9:95:9 | After switch (...) {...} | semmle.label | successor |
|
||||
| patterns.cs:94:13:94:24 | case ...: | patterns.cs:94:13:94:24 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:94:13:94:24 | case ...: | patterns.cs:94:13:94:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:94:13:94:24 | case ...: | patterns.cs:94:18:94:23 | Before { ... } | semmle.label | successor |
|
||||
| patterns.cs:94:18:94:23 | ( ... ) | patterns.cs:94:18:94:23 | After ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:94:18:94:23 | After ( ... ) | patterns.cs:94:18:94:23 | { ... } | semmle.label | successor |
|
||||
| patterns.cs:94:18:94:23 | After { ... } | patterns.cs:94:26:94:31 | Before break; | semmle.label | successor |
|
||||
| patterns.cs:94:18:94:23 | After { ... } [match] | patterns.cs:94:13:94:24 | After case ...: [match] | semmle.label | match |
|
||||
| patterns.cs:94:18:94:23 | After { ... } [no-match] | patterns.cs:94:13:94:24 | After case ...: [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:94:18:94:23 | Before ( ... ) | patterns.cs:94:19:94:19 | 2 | semmle.label | successor |
|
||||
| patterns.cs:94:18:94:23 | Before { ... } | patterns.cs:94:18:94:23 | Before ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:94:18:94:23 | { ... } | patterns.cs:94:18:94:23 | After { ... } | semmle.label | successor |
|
||||
| patterns.cs:94:18:94:23 | { ... } | patterns.cs:94:18:94:23 | After { ... } [match] | semmle.label | match |
|
||||
| patterns.cs:94:18:94:23 | { ... } | patterns.cs:94:18:94:23 | After { ... } [no-match] | semmle.label | no-match |
|
||||
| patterns.cs:94:19:94:19 | 2 | patterns.cs:94:22:94:22 | _ | semmle.label | successor |
|
||||
| patterns.cs:94:22:94:22 | _ | patterns.cs:94:18:94:23 | ( ... ) | semmle.label | successor |
|
||||
| patterns.cs:94:26:94:31 | Before break; | patterns.cs:94:26:94:31 | break; | semmle.label | successor |
|
||||
|
||||
@@ -120,3 +120,36 @@ public class CompoundAssignmentOperators
|
||||
Sink(x.Field); // $ hasValueFlow=1
|
||||
}
|
||||
}
|
||||
|
||||
public class MutatorOperators
|
||||
{
|
||||
static void Sink(object o) { }
|
||||
static T Source<T>(object source) => throw null;
|
||||
|
||||
public class C1
|
||||
{
|
||||
public object Field { get; private set; }
|
||||
|
||||
public C1()
|
||||
{
|
||||
Field = new object();
|
||||
}
|
||||
|
||||
public C1(object o)
|
||||
{
|
||||
Field = o;
|
||||
}
|
||||
|
||||
public void operator ++()
|
||||
{
|
||||
Field = Source<object>(1);
|
||||
}
|
||||
|
||||
public void M1()
|
||||
{
|
||||
var x = new C1();
|
||||
x++;
|
||||
Sink(x.Field); // $ hasValueFlow=1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,6 +130,16 @@ edges
|
||||
| Operator.cs:119:14:119:14 | access to local variable y : C [property Field] : Object | Operator.cs:119:9:119:9 | [post] access to local variable x : C [property Field] : Object | provenance | |
|
||||
| Operator.cs:120:14:120:14 | access to local variable x : C [property Field] : Object | Operator.cs:120:14:120:20 | access to property Field | provenance | |
|
||||
| Operator.cs:120:14:120:14 | access to local variable x : C [property Field] : Object | Operator.cs:120:14:120:20 | access to property Field | provenance | |
|
||||
| Operator.cs:143:30:143:31 | this [Return] : C1 [property Field] : Object | Operator.cs:151:13:151:13 | [post] access to local variable x : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:143:30:143:31 | this [Return] : C1 [property Field] : Object | Operator.cs:151:13:151:13 | [post] access to local variable x : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:145:13:145:17 | [post] this access : C1 [property Field] : Object | Operator.cs:143:30:143:31 | this [Return] : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:145:13:145:17 | [post] this access : C1 [property Field] : Object | Operator.cs:143:30:143:31 | this [Return] : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:145:21:145:37 | call to method Source<Object> : Object | Operator.cs:145:13:145:17 | [post] this access : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:145:21:145:37 | call to method Source<Object> : Object | Operator.cs:145:13:145:17 | [post] this access : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:151:13:151:13 | [post] access to local variable x : C1 [property Field] : Object | Operator.cs:152:18:152:18 | access to local variable x : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:151:13:151:13 | [post] access to local variable x : C1 [property Field] : Object | Operator.cs:152:18:152:18 | access to local variable x : C1 [property Field] : Object | provenance | |
|
||||
| Operator.cs:152:18:152:18 | access to local variable x : C1 [property Field] : Object | Operator.cs:152:18:152:24 | access to property Field | provenance | |
|
||||
| Operator.cs:152:18:152:18 | access to local variable x : C1 [property Field] : Object | Operator.cs:152:18:152:24 | access to property Field | provenance | |
|
||||
nodes
|
||||
| Operator.cs:9:39:9:39 | x : C | semmle.label | x : C |
|
||||
| Operator.cs:9:39:9:39 | x : C | semmle.label | x : C |
|
||||
@@ -275,6 +285,18 @@ nodes
|
||||
| Operator.cs:120:14:120:14 | access to local variable x : C [property Field] : Object | semmle.label | access to local variable x : C [property Field] : Object |
|
||||
| Operator.cs:120:14:120:20 | access to property Field | semmle.label | access to property Field |
|
||||
| Operator.cs:120:14:120:20 | access to property Field | semmle.label | access to property Field |
|
||||
| Operator.cs:143:30:143:31 | this [Return] : C1 [property Field] : Object | semmle.label | this [Return] : C1 [property Field] : Object |
|
||||
| Operator.cs:143:30:143:31 | this [Return] : C1 [property Field] : Object | semmle.label | this [Return] : C1 [property Field] : Object |
|
||||
| Operator.cs:145:13:145:17 | [post] this access : C1 [property Field] : Object | semmle.label | [post] this access : C1 [property Field] : Object |
|
||||
| Operator.cs:145:13:145:17 | [post] this access : C1 [property Field] : Object | semmle.label | [post] this access : C1 [property Field] : Object |
|
||||
| Operator.cs:145:21:145:37 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
|
||||
| Operator.cs:145:21:145:37 | call to method Source<Object> : Object | semmle.label | call to method Source<Object> : Object |
|
||||
| Operator.cs:151:13:151:13 | [post] access to local variable x : C1 [property Field] : Object | semmle.label | [post] access to local variable x : C1 [property Field] : Object |
|
||||
| Operator.cs:151:13:151:13 | [post] access to local variable x : C1 [property Field] : Object | semmle.label | [post] access to local variable x : C1 [property Field] : Object |
|
||||
| Operator.cs:152:18:152:18 | access to local variable x : C1 [property Field] : Object | semmle.label | access to local variable x : C1 [property Field] : Object |
|
||||
| Operator.cs:152:18:152:18 | access to local variable x : C1 [property Field] : Object | semmle.label | access to local variable x : C1 [property Field] : Object |
|
||||
| Operator.cs:152:18:152:24 | access to property Field | semmle.label | access to property Field |
|
||||
| Operator.cs:152:18:152:24 | access to property Field | semmle.label | access to property Field |
|
||||
subpaths
|
||||
| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:16:38:16:38 | x : C | Operator.cs:16:49:16:49 | access to parameter x : C | Operator.cs:29:17:29:21 | call to operator + : C |
|
||||
| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:16:38:16:38 | x : C | Operator.cs:16:49:16:49 | access to parameter x : C | Operator.cs:29:17:29:21 | call to operator + : C |
|
||||
@@ -308,3 +330,5 @@ testFailures
|
||||
| Operator.cs:78:14:78:14 | (...) ... | Operator.cs:84:17:84:29 | call to method Source<C> : C | Operator.cs:78:14:78:14 | (...) ... | $@ | Operator.cs:84:17:84:29 | call to method Source<C> : C | call to method Source<C> : C |
|
||||
| Operator.cs:120:14:120:20 | access to property Field | Operator.cs:116:23:116:39 | call to method Source<Object> : Object | Operator.cs:120:14:120:20 | access to property Field | $@ | Operator.cs:116:23:116:39 | call to method Source<Object> : Object | call to method Source<Object> : Object |
|
||||
| Operator.cs:120:14:120:20 | access to property Field | Operator.cs:116:23:116:39 | call to method Source<Object> : Object | Operator.cs:120:14:120:20 | access to property Field | $@ | Operator.cs:116:23:116:39 | call to method Source<Object> : Object | call to method Source<Object> : Object |
|
||||
| Operator.cs:152:18:152:24 | access to property Field | Operator.cs:145:21:145:37 | call to method Source<Object> : Object | Operator.cs:152:18:152:24 | access to property Field | $@ | Operator.cs:145:21:145:37 | call to method Source<Object> : Object | call to method Source<Object> : Object |
|
||||
| Operator.cs:152:18:152:24 | access to property Field | Operator.cs:145:21:145:37 | call to method Source<Object> : Object | Operator.cs:152:18:152:24 | access to property Field | $@ | Operator.cs:145:21:145:37 | call to method Source<Object> : Object | call to method Source<Object> : Object |
|
||||
|
||||
@@ -171,311 +171,341 @@ extensions.cs:
|
||||
# 16| 4: [BlockStmt] {...}
|
||||
# 16| 0: [ReturnStmt] return ...;
|
||||
# 16| 0: [ParameterAccess] access to parameter t
|
||||
# 19| 5: [ExtensionType] extension(Object)
|
||||
# 21| 4: [ExtensionMethod] StaticObjectM1
|
||||
# 21| -1: [TypeMention] int
|
||||
# 21| 4: [BlockStmt] {...}
|
||||
# 21| 0: [ReturnStmt] return ...;
|
||||
# 21| 0: [IntLiteral] 0
|
||||
# 22| 5: [ExtensionMethod] StaticObjectM2
|
||||
# 22| -1: [TypeMention] int
|
||||
# 17| 15: [ExtensionCallable,IncrementOperator] ++
|
||||
# 17| -1: [TypeMention] Void
|
||||
#-----| 2: (Parameters)
|
||||
# 22| 0: [Parameter] s
|
||||
# 22| -1: [TypeMention] string
|
||||
# 22| 4: [BlockStmt] {...}
|
||||
# 22| 0: [ReturnStmt] return ...;
|
||||
# 22| 0: [PropertyCall] access to property Length
|
||||
# 22| -1: [ParameterAccess] access to parameter s
|
||||
# 23| 6: [Property] StaticProp
|
||||
# 23| -1: [TypeMention] bool
|
||||
# 23| 3: [ExtensionCallable,Getter] get_StaticProp
|
||||
# 23| 4: [BoolLiteral] true
|
||||
# 26| 8: [ExtensionType] extension(T)`1
|
||||
# 6| 0: [Parameter] s
|
||||
# 6| -1: [TypeMention] string
|
||||
# 17| 4: [BlockStmt] {...}
|
||||
# 18| 16: [DecrementOperator,ExtensionCallable] --
|
||||
# 18| -1: [TypeMention] string
|
||||
#-----| 2: (Parameters)
|
||||
# 18| 0: [Parameter] o
|
||||
# 18| -1: [TypeMention] string
|
||||
# 18| 4: [BlockStmt] {...}
|
||||
# 18| 0: [ReturnStmt] return ...;
|
||||
# 18| 0: [ParameterAccess] access to parameter o
|
||||
# 21| 5: [ExtensionType] extension(Object)
|
||||
# 23| 4: [ExtensionMethod] StaticObjectM1
|
||||
# 23| -1: [TypeMention] int
|
||||
# 23| 4: [BlockStmt] {...}
|
||||
# 23| 0: [ReturnStmt] return ...;
|
||||
# 23| 0: [IntLiteral] 0
|
||||
# 24| 5: [ExtensionMethod] StaticObjectM2
|
||||
# 24| -1: [TypeMention] int
|
||||
#-----| 2: (Parameters)
|
||||
# 24| 0: [Parameter] s
|
||||
# 24| -1: [TypeMention] string
|
||||
# 24| 4: [BlockStmt] {...}
|
||||
# 24| 0: [ReturnStmt] return ...;
|
||||
# 24| 0: [PropertyCall] access to property Length
|
||||
# 24| -1: [ParameterAccess] access to parameter s
|
||||
# 25| 6: [Property] StaticProp
|
||||
# 25| -1: [TypeMention] bool
|
||||
# 25| 3: [ExtensionCallable,Getter] get_StaticProp
|
||||
# 25| 4: [BoolLiteral] true
|
||||
# 28| 8: [ExtensionType] extension(T)`1
|
||||
#-----| 1: (Type parameters)
|
||||
# 26| 0: [TypeParameter] T
|
||||
# 28| 0: [TypeParameter] T
|
||||
#-----| 2: (Parameters)
|
||||
# 26| 0: [Parameter] t
|
||||
# 26| -1: [TypeMention] T
|
||||
# 28| 4: [Property] GenericProp1
|
||||
# 28| -1: [TypeMention] bool
|
||||
# 28| 3: [ExtensionCallable,Getter] get_GenericProp1
|
||||
#-----| 2: (Parameters)
|
||||
# 26| 0: [Parameter] t
|
||||
# 26| -1: [TypeMention] T
|
||||
# 28| 4: [IsExpr] ... is ...
|
||||
# 28| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter t
|
||||
# 28| 1: [NotPatternExpr] not ...
|
||||
# 28| 0: [ConstantPatternExpr,NullLiteral] null
|
||||
# 29| 5: [Property] GenericProp2
|
||||
# 29| -1: [TypeMention] bool
|
||||
# 29| 3: [ExtensionCallable,Getter] get_GenericProp2
|
||||
#-----| 2: (Parameters)
|
||||
# 26| 0: [Parameter] t
|
||||
# 26| -1: [TypeMention] T
|
||||
# 29| 4: [BlockStmt] {...}
|
||||
# 29| 0: [ReturnStmt] return ...;
|
||||
# 29| 0: [BoolLiteral] true
|
||||
# 29| 4: [ExtensionCallable,Setter] set_GenericProp2
|
||||
#-----| 2: (Parameters)
|
||||
# 26| 0: [Parameter] t
|
||||
# 26| -1: [TypeMention] T
|
||||
# 29| 1: [Parameter] value
|
||||
# 29| 4: [BlockStmt] {...}
|
||||
# 30| 6: [ExtensionMethod] GenericM1
|
||||
# 28| 0: [Parameter] t
|
||||
# 28| -1: [TypeMention] T
|
||||
# 30| 4: [Property] GenericProp1
|
||||
# 30| -1: [TypeMention] bool
|
||||
# 30| 3: [ExtensionCallable,Getter] get_GenericProp1
|
||||
#-----| 2: (Parameters)
|
||||
# 28| 0: [Parameter] t
|
||||
# 28| -1: [TypeMention] T
|
||||
# 30| 4: [IsExpr] ... is ...
|
||||
# 30| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter t
|
||||
# 30| 1: [NotPatternExpr] not ...
|
||||
# 30| 0: [ConstantPatternExpr,NullLiteral] null
|
||||
# 31| 5: [Property] GenericProp2
|
||||
# 31| -1: [TypeMention] bool
|
||||
# 31| 3: [ExtensionCallable,Getter] get_GenericProp2
|
||||
#-----| 2: (Parameters)
|
||||
# 28| 0: [Parameter] t
|
||||
# 28| -1: [TypeMention] T
|
||||
# 31| 4: [BlockStmt] {...}
|
||||
# 31| 0: [ReturnStmt] return ...;
|
||||
# 31| 0: [BoolLiteral] true
|
||||
# 31| 4: [ExtensionCallable,Setter] set_GenericProp2
|
||||
#-----| 2: (Parameters)
|
||||
# 28| 0: [Parameter] t
|
||||
# 28| -1: [TypeMention] T
|
||||
# 31| 1: [Parameter] value
|
||||
# 31| 4: [BlockStmt] {...}
|
||||
# 32| 6: [ExtensionMethod] GenericM1
|
||||
# 32| -1: [TypeMention] bool
|
||||
#-----| 2: (Parameters)
|
||||
# 26| 0: [Parameter] t
|
||||
# 26| -1: [TypeMention] T
|
||||
# 30| 4: [IsExpr] ... is ...
|
||||
# 30| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter t
|
||||
# 30| 1: [NotPatternExpr] not ...
|
||||
# 30| 0: [ConstantPatternExpr,NullLiteral] null
|
||||
# 31| 7: [ExtensionMethod] GenericM2`1
|
||||
# 31| -1: [TypeMention] Void
|
||||
#-----| 1: (Type parameters)
|
||||
# 31| 0: [TypeParameter] S
|
||||
#-----| 2: (Parameters)
|
||||
# 26| 0: [Parameter] t
|
||||
# 26| -1: [TypeMention] T
|
||||
# 31| 1: [Parameter] other
|
||||
# 31| -1: [TypeMention] S
|
||||
# 31| 4: [BlockStmt] {...}
|
||||
# 32| 8: [ExtensionMethod] GenericStaticM1
|
||||
# 32| -1: [TypeMention] Void
|
||||
#-----| 2: (Parameters)
|
||||
# 26| 0: [Parameter] t
|
||||
# 26| -1: [TypeMention] T
|
||||
# 32| 4: [BlockStmt] {...}
|
||||
# 33| 9: [ExtensionMethod] GenericStaticM2`1
|
||||
# 28| 0: [Parameter] t
|
||||
# 28| -1: [TypeMention] T
|
||||
# 32| 4: [IsExpr] ... is ...
|
||||
# 32| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter t
|
||||
# 32| 1: [NotPatternExpr] not ...
|
||||
# 32| 0: [ConstantPatternExpr,NullLiteral] null
|
||||
# 33| 7: [ExtensionMethod] GenericM2`1
|
||||
# 33| -1: [TypeMention] Void
|
||||
#-----| 1: (Type parameters)
|
||||
# 33| 0: [TypeParameter] S
|
||||
#-----| 2: (Parameters)
|
||||
# 33| 0: [Parameter] other
|
||||
# 28| 0: [Parameter] t
|
||||
# 28| -1: [TypeMention] T
|
||||
# 33| 1: [Parameter] other
|
||||
# 33| -1: [TypeMention] S
|
||||
# 33| 4: [BlockStmt] {...}
|
||||
# 34| 10: [AddOperator,ExtensionCallable] +
|
||||
# 34| -1: [TypeMention] T
|
||||
# 34| 8: [ExtensionMethod] GenericStaticM1
|
||||
# 34| -1: [TypeMention] Void
|
||||
#-----| 2: (Parameters)
|
||||
# 34| 0: [Parameter] a
|
||||
# 34| -1: [TypeMention] T
|
||||
# 34| 1: [Parameter] b
|
||||
# 34| -1: [TypeMention] T
|
||||
# 28| 0: [Parameter] t
|
||||
# 28| -1: [TypeMention] T
|
||||
# 34| 4: [BlockStmt] {...}
|
||||
# 34| 0: [ReturnStmt] return ...;
|
||||
# 34| 0: [NullLiteral] null
|
||||
# 38| [Class] ClassicExtensions
|
||||
# 40| 4: [ExtensionMethod] M3
|
||||
# 40| -1: [TypeMention] bool
|
||||
# 35| 9: [ExtensionMethod] GenericStaticM2`1
|
||||
# 35| -1: [TypeMention] Void
|
||||
#-----| 1: (Type parameters)
|
||||
# 35| 0: [TypeParameter] S
|
||||
#-----| 2: (Parameters)
|
||||
# 35| 0: [Parameter] other
|
||||
# 35| -1: [TypeMention] S
|
||||
# 35| 4: [BlockStmt] {...}
|
||||
# 36| 10: [AddOperator,ExtensionCallable] +
|
||||
# 36| -1: [TypeMention] T
|
||||
#-----| 2: (Parameters)
|
||||
# 36| 0: [Parameter] a
|
||||
# 36| -1: [TypeMention] T
|
||||
# 36| 1: [Parameter] b
|
||||
# 36| -1: [TypeMention] T
|
||||
# 36| 4: [BlockStmt] {...}
|
||||
# 36| 0: [ReturnStmt] return ...;
|
||||
# 36| 0: [NullLiteral] null
|
||||
# 40| [Class] ClassicExtensions
|
||||
# 42| 4: [ExtensionMethod] M3
|
||||
# 42| -1: [TypeMention] bool
|
||||
#-----| 2: (Parameters)
|
||||
# 40| 0: [Parameter] s
|
||||
# 40| -1: [TypeMention] string
|
||||
# 40| 4: [IsExpr] ... is ...
|
||||
# 40| 0: [ParameterAccess] access to parameter s
|
||||
# 40| 1: [NotPatternExpr] not ...
|
||||
# 40| 0: [ConstantPatternExpr,NullLiteral] null
|
||||
# 43| [Class] C
|
||||
# 45| 6: [Method] CallingExtensions
|
||||
# 45| -1: [TypeMention] Void
|
||||
# 46| 4: [BlockStmt] {...}
|
||||
# 47| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 47| 0: [LocalVariableDeclAndInitExpr] String s = ...
|
||||
# 47| -1: [TypeMention] string
|
||||
# 47| 0: [LocalVariableAccess] access to local variable s
|
||||
# 47| 1: [StringLiteralUtf16] "Hello World."
|
||||
# 50| 1: [LocalVariableDeclStmt] ... ...;
|
||||
# 50| 0: [LocalVariableDeclAndInitExpr] Boolean x11 = ...
|
||||
# 50| -1: [TypeMention] bool
|
||||
# 50| 0: [LocalVariableAccess] access to local variable x11
|
||||
# 50| 1: [ExtensionPropertyCall] access to property Prop1
|
||||
# 50| -1: [LocalVariableAccess] access to local variable s
|
||||
# 51| 2: [LocalVariableDeclStmt] ... ...;
|
||||
# 51| 0: [LocalVariableDeclAndInitExpr] Boolean x12 = ...
|
||||
# 51| -1: [TypeMention] bool
|
||||
# 51| 0: [LocalVariableAccess] access to local variable x12
|
||||
# 51| 1: [ExtensionPropertyCall] access to property Prop2
|
||||
# 51| -1: [LocalVariableAccess] access to local variable s
|
||||
# 52| 3: [ExprStmt] ...;
|
||||
# 52| 0: [AssignExpr] ... = ...
|
||||
# 52| 0: [ExtensionPropertyCall] access to property Prop2
|
||||
# 42| 0: [Parameter] s
|
||||
# 42| -1: [TypeMention] string
|
||||
# 42| 4: [IsExpr] ... is ...
|
||||
# 42| 0: [ParameterAccess] access to parameter s
|
||||
# 42| 1: [NotPatternExpr] not ...
|
||||
# 42| 0: [ConstantPatternExpr,NullLiteral] null
|
||||
# 45| [Class] C
|
||||
# 47| 6: [Method] CallingExtensions
|
||||
# 47| -1: [TypeMention] Void
|
||||
# 48| 4: [BlockStmt] {...}
|
||||
# 49| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 49| 0: [LocalVariableDeclAndInitExpr] String s = ...
|
||||
# 49| -1: [TypeMention] string
|
||||
# 49| 0: [LocalVariableAccess] access to local variable s
|
||||
# 49| 1: [StringLiteralUtf16] "Hello World."
|
||||
# 52| 1: [LocalVariableDeclStmt] ... ...;
|
||||
# 52| 0: [LocalVariableDeclAndInitExpr] Boolean x11 = ...
|
||||
# 52| -1: [TypeMention] bool
|
||||
# 52| 0: [LocalVariableAccess] access to local variable x11
|
||||
# 52| 1: [ExtensionPropertyCall] access to property Prop1
|
||||
# 52| -1: [LocalVariableAccess] access to local variable s
|
||||
# 52| 1: [BoolLiteral] true
|
||||
# 53| 4: [LocalVariableDeclStmt] ... ...;
|
||||
# 53| 0: [LocalVariableDeclAndInitExpr] Boolean x13 = ...
|
||||
# 53| 2: [LocalVariableDeclStmt] ... ...;
|
||||
# 53| 0: [LocalVariableDeclAndInitExpr] Boolean x12 = ...
|
||||
# 53| -1: [TypeMention] bool
|
||||
# 53| 0: [LocalVariableAccess] access to local variable x13
|
||||
# 53| 1: [ExtensionPropertyCall] access to property StaticProp1
|
||||
# 53| -1: [TypeAccess] access to type String
|
||||
# 53| 0: [TypeMention] string
|
||||
# 54| 5: [LocalVariableDeclStmt] ... ...;
|
||||
# 54| 0: [LocalVariableDeclAndInitExpr] Boolean x14 = ...
|
||||
# 54| -1: [TypeMention] bool
|
||||
# 54| 0: [LocalVariableAccess] access to local variable x14
|
||||
# 54| 1: [ExtensionPropertyCall] access to property StaticProp
|
||||
# 54| -1: [TypeAccess] access to type Object
|
||||
# 54| 0: [TypeMention] object
|
||||
# 57| 6: [LocalVariableDeclStmt] ... ...;
|
||||
# 57| 0: [LocalVariableDeclAndInitExpr] Boolean x21 = ...
|
||||
# 57| -1: [TypeMention] bool
|
||||
# 57| 0: [LocalVariableAccess] access to local variable x21
|
||||
# 57| 1: [MethodCall] call to method M1
|
||||
# 57| -1: [LocalVariableAccess] access to local variable s
|
||||
# 58| 7: [LocalVariableDeclStmt] ... ...;
|
||||
# 58| 0: [LocalVariableDeclAndInitExpr] String x22 = ...
|
||||
# 58| -1: [TypeMention] string
|
||||
# 58| 0: [LocalVariableAccess] access to local variable x22
|
||||
# 58| 1: [MethodCall] call to method M2
|
||||
# 58| -1: [LocalVariableAccess] access to local variable s
|
||||
# 58| 0: [StringLiteralUtf16] "!!!"
|
||||
# 59| 8: [LocalVariableDeclStmt] ... ...;
|
||||
# 59| 0: [LocalVariableDeclAndInitExpr] Int32 x23 = ...
|
||||
# 59| -1: [TypeMention] int
|
||||
# 59| 0: [LocalVariableAccess] access to local variable x23
|
||||
# 59| 1: [MethodCall] call to method StaticM1
|
||||
# 59| -1: [TypeAccess] access to type String
|
||||
# 59| 0: [TypeMention] string
|
||||
# 60| 9: [LocalVariableDeclStmt] ... ...;
|
||||
# 60| 0: [LocalVariableDeclAndInitExpr] Int32 x24 = ...
|
||||
# 60| -1: [TypeMention] int
|
||||
# 60| 0: [LocalVariableAccess] access to local variable x24
|
||||
# 60| 1: [MethodCall] call to method StaticM2
|
||||
# 60| -1: [TypeAccess] access to type String
|
||||
# 60| 0: [TypeMention] string
|
||||
# 60| 0: [LocalVariableAccess] access to local variable s
|
||||
# 61| 10: [LocalVariableDeclStmt] ... ...;
|
||||
# 61| 0: [LocalVariableDeclAndInitExpr] Int32 x25 = ...
|
||||
# 53| 0: [LocalVariableAccess] access to local variable x12
|
||||
# 53| 1: [ExtensionPropertyCall] access to property Prop2
|
||||
# 53| -1: [LocalVariableAccess] access to local variable s
|
||||
# 54| 3: [ExprStmt] ...;
|
||||
# 54| 0: [AssignExpr] ... = ...
|
||||
# 54| 0: [ExtensionPropertyCall] access to property Prop2
|
||||
# 54| -1: [LocalVariableAccess] access to local variable s
|
||||
# 54| 1: [BoolLiteral] true
|
||||
# 55| 4: [LocalVariableDeclStmt] ... ...;
|
||||
# 55| 0: [LocalVariableDeclAndInitExpr] Boolean x13 = ...
|
||||
# 55| -1: [TypeMention] bool
|
||||
# 55| 0: [LocalVariableAccess] access to local variable x13
|
||||
# 55| 1: [ExtensionPropertyCall] access to property StaticProp1
|
||||
# 55| -1: [TypeAccess] access to type String
|
||||
# 55| 0: [TypeMention] string
|
||||
# 56| 5: [LocalVariableDeclStmt] ... ...;
|
||||
# 56| 0: [LocalVariableDeclAndInitExpr] Boolean x14 = ...
|
||||
# 56| -1: [TypeMention] bool
|
||||
# 56| 0: [LocalVariableAccess] access to local variable x14
|
||||
# 56| 1: [ExtensionPropertyCall] access to property StaticProp
|
||||
# 56| -1: [TypeAccess] access to type Object
|
||||
# 56| 0: [TypeMention] object
|
||||
# 59| 6: [LocalVariableDeclStmt] ... ...;
|
||||
# 59| 0: [LocalVariableDeclAndInitExpr] Boolean x21 = ...
|
||||
# 59| -1: [TypeMention] bool
|
||||
# 59| 0: [LocalVariableAccess] access to local variable x21
|
||||
# 59| 1: [MethodCall] call to method M1
|
||||
# 59| -1: [LocalVariableAccess] access to local variable s
|
||||
# 60| 7: [LocalVariableDeclStmt] ... ...;
|
||||
# 60| 0: [LocalVariableDeclAndInitExpr] String x22 = ...
|
||||
# 60| -1: [TypeMention] string
|
||||
# 60| 0: [LocalVariableAccess] access to local variable x22
|
||||
# 60| 1: [MethodCall] call to method M2
|
||||
# 60| -1: [LocalVariableAccess] access to local variable s
|
||||
# 60| 0: [StringLiteralUtf16] "!!!"
|
||||
# 61| 8: [LocalVariableDeclStmt] ... ...;
|
||||
# 61| 0: [LocalVariableDeclAndInitExpr] Int32 x23 = ...
|
||||
# 61| -1: [TypeMention] int
|
||||
# 61| 0: [LocalVariableAccess] access to local variable x25
|
||||
# 61| 1: [MethodCall] call to method StaticObjectM1
|
||||
# 61| -1: [TypeAccess] access to type Object
|
||||
# 61| 0: [TypeMention] object
|
||||
# 62| 11: [LocalVariableDeclStmt] ... ...;
|
||||
# 62| 0: [LocalVariableDeclAndInitExpr] Int32 x26 = ...
|
||||
# 61| 0: [LocalVariableAccess] access to local variable x23
|
||||
# 61| 1: [MethodCall] call to method StaticM1
|
||||
# 61| -1: [TypeAccess] access to type String
|
||||
# 61| 0: [TypeMention] string
|
||||
# 62| 9: [LocalVariableDeclStmt] ... ...;
|
||||
# 62| 0: [LocalVariableDeclAndInitExpr] Int32 x24 = ...
|
||||
# 62| -1: [TypeMention] int
|
||||
# 62| 0: [LocalVariableAccess] access to local variable x26
|
||||
# 62| 1: [MethodCall] call to method StaticObjectM2
|
||||
# 62| -1: [TypeAccess] access to type Object
|
||||
# 62| 0: [TypeMention] object
|
||||
# 62| 0: [LocalVariableAccess] access to local variable x24
|
||||
# 62| 1: [MethodCall] call to method StaticM2
|
||||
# 62| -1: [TypeAccess] access to type String
|
||||
# 62| 0: [TypeMention] string
|
||||
# 62| 0: [LocalVariableAccess] access to local variable s
|
||||
# 65| 12: [LocalVariableDeclStmt] ... ...;
|
||||
# 65| 0: [LocalVariableDeclAndInitExpr] String x30 = ...
|
||||
# 65| -1: [TypeMention] string
|
||||
# 65| 0: [LocalVariableAccess] access to local variable x30
|
||||
# 65| 1: [ExtensionOperatorCall] call to operator *
|
||||
# 65| 0: [IntLiteral] 3
|
||||
# 65| 1: [LocalVariableAccess] access to local variable s
|
||||
# 68| 13: [LocalVariableDeclStmt] ... ...;
|
||||
# 68| 0: [LocalVariableDeclAndInitExpr] Boolean y = ...
|
||||
# 68| -1: [TypeMention] bool
|
||||
# 68| 0: [LocalVariableAccess] access to local variable y
|
||||
# 68| 1: [MethodCall] call to method M3
|
||||
# 68| -1: [LocalVariableAccess] access to local variable s
|
||||
# 71| 14: [ExprStmt] ...;
|
||||
# 71| 0: [MethodCall] call to method M1
|
||||
# 71| -1: [TypeAccess] access to type MyExtensions
|
||||
# 71| 0: [TypeMention] MyExtensions
|
||||
# 71| 0: [LocalVariableAccess] access to local variable s
|
||||
# 72| 15: [ExprStmt] ...;
|
||||
# 72| 0: [MethodCall] call to method M2
|
||||
# 72| -1: [TypeAccess] access to type MyExtensions
|
||||
# 72| 0: [TypeMention] MyExtensions
|
||||
# 72| 0: [LocalVariableAccess] access to local variable s
|
||||
# 72| 1: [StringLiteralUtf16] "!!!"
|
||||
# 73| 16: [ExprStmt] ...;
|
||||
# 73| 0: [MethodCall] call to method StaticM1
|
||||
# 73| -1: [TypeAccess] access to type MyExtensions
|
||||
# 73| 0: [TypeMention] MyExtensions
|
||||
# 74| 17: [ExprStmt] ...;
|
||||
# 74| 0: [MethodCall] call to method StaticM2
|
||||
# 74| -1: [TypeAccess] access to type MyExtensions
|
||||
# 74| 0: [TypeMention] MyExtensions
|
||||
# 74| 0: [LocalVariableAccess] access to local variable s
|
||||
# 75| 18: [ExprStmt] ...;
|
||||
# 75| 0: [MethodCall] call to method StaticObjectM1
|
||||
# 63| 10: [LocalVariableDeclStmt] ... ...;
|
||||
# 63| 0: [LocalVariableDeclAndInitExpr] Int32 x25 = ...
|
||||
# 63| -1: [TypeMention] int
|
||||
# 63| 0: [LocalVariableAccess] access to local variable x25
|
||||
# 63| 1: [MethodCall] call to method StaticObjectM1
|
||||
# 63| -1: [TypeAccess] access to type Object
|
||||
# 63| 0: [TypeMention] object
|
||||
# 64| 11: [LocalVariableDeclStmt] ... ...;
|
||||
# 64| 0: [LocalVariableDeclAndInitExpr] Int32 x26 = ...
|
||||
# 64| -1: [TypeMention] int
|
||||
# 64| 0: [LocalVariableAccess] access to local variable x26
|
||||
# 64| 1: [MethodCall] call to method StaticObjectM2
|
||||
# 64| -1: [TypeAccess] access to type Object
|
||||
# 64| 0: [TypeMention] object
|
||||
# 64| 0: [LocalVariableAccess] access to local variable s
|
||||
# 67| 12: [LocalVariableDeclStmt] ... ...;
|
||||
# 67| 0: [LocalVariableDeclAndInitExpr] String x30 = ...
|
||||
# 67| -1: [TypeMention] string
|
||||
# 67| 0: [LocalVariableAccess] access to local variable x30
|
||||
# 67| 1: [ExtensionOperatorCall] call to operator *
|
||||
# 67| 0: [IntLiteral] 3
|
||||
# 67| 1: [LocalVariableAccess] access to local variable s
|
||||
# 68| 13: [ExprStmt] ...;
|
||||
# 68| 0: [ExtensionOperatorCall] call to operator ++
|
||||
# 68| 0: [LocalVariableAccess] access to local variable s
|
||||
# 69| 14: [ExprStmt] ...;
|
||||
# 69| 0: [ExtensionOperatorCall] call to operator --
|
||||
# 69| 0: [LocalVariableAccess] access to local variable s
|
||||
# 72| 15: [LocalVariableDeclStmt] ... ...;
|
||||
# 72| 0: [LocalVariableDeclAndInitExpr] Boolean y = ...
|
||||
# 72| -1: [TypeMention] bool
|
||||
# 72| 0: [LocalVariableAccess] access to local variable y
|
||||
# 72| 1: [MethodCall] call to method M3
|
||||
# 72| -1: [LocalVariableAccess] access to local variable s
|
||||
# 75| 16: [ExprStmt] ...;
|
||||
# 75| 0: [MethodCall] call to method M1
|
||||
# 75| -1: [TypeAccess] access to type MyExtensions
|
||||
# 75| 0: [TypeMention] MyExtensions
|
||||
# 76| 19: [ExprStmt] ...;
|
||||
# 76| 0: [MethodCall] call to method StaticObjectM2
|
||||
# 75| 0: [LocalVariableAccess] access to local variable s
|
||||
# 76| 17: [ExprStmt] ...;
|
||||
# 76| 0: [MethodCall] call to method M2
|
||||
# 76| -1: [TypeAccess] access to type MyExtensions
|
||||
# 76| 0: [TypeMention] MyExtensions
|
||||
# 76| 0: [LocalVariableAccess] access to local variable s
|
||||
# 76| 1: [StringLiteralUtf16] "!!!"
|
||||
# 77| 18: [ExprStmt] ...;
|
||||
# 77| 0: [MethodCall] call to method StaticM1
|
||||
# 77| -1: [TypeAccess] access to type MyExtensions
|
||||
# 77| 0: [TypeMention] MyExtensions
|
||||
# 78| 19: [ExprStmt] ...;
|
||||
# 78| 0: [MethodCall] call to method StaticM2
|
||||
# 78| -1: [TypeAccess] access to type MyExtensions
|
||||
# 78| 0: [TypeMention] MyExtensions
|
||||
# 78| 0: [LocalVariableAccess] access to local variable s
|
||||
# 79| 20: [ExprStmt] ...;
|
||||
# 79| 0: [ExtensionOperatorCall] call to operator *
|
||||
# 79| 0: [MethodCall] call to method StaticObjectM1
|
||||
# 79| -1: [TypeAccess] access to type MyExtensions
|
||||
# 79| 0: [TypeMention] MyExtensions
|
||||
# 79| 0: [IntLiteral] 3
|
||||
# 79| 1: [LocalVariableAccess] access to local variable s
|
||||
# 82| 21: [ExprStmt] ...;
|
||||
# 82| 0: [MethodCall] call to extension accessor get_Prop1
|
||||
# 82| -1: [TypeAccess] access to type MyExtensions
|
||||
# 82| 0: [TypeMention] MyExtensions
|
||||
# 82| 0: [LocalVariableAccess] access to local variable s
|
||||
# 80| 21: [ExprStmt] ...;
|
||||
# 80| 0: [MethodCall] call to method StaticObjectM2
|
||||
# 80| -1: [TypeAccess] access to type MyExtensions
|
||||
# 80| 0: [TypeMention] MyExtensions
|
||||
# 80| 0: [LocalVariableAccess] access to local variable s
|
||||
# 83| 22: [ExprStmt] ...;
|
||||
# 83| 0: [MethodCall] call to extension accessor get_Prop2
|
||||
# 83| 0: [ExtensionOperatorCall] call to operator *
|
||||
# 83| -1: [TypeAccess] access to type MyExtensions
|
||||
# 83| 0: [TypeMention] MyExtensions
|
||||
# 83| 0: [LocalVariableAccess] access to local variable s
|
||||
# 83| 0: [IntLiteral] 3
|
||||
# 83| 1: [LocalVariableAccess] access to local variable s
|
||||
# 84| 23: [ExprStmt] ...;
|
||||
# 84| 0: [MethodCall] call to extension accessor set_Prop2
|
||||
# 84| 0: [ExtensionOperatorCall] call to operator ++
|
||||
# 84| -1: [TypeAccess] access to type MyExtensions
|
||||
# 84| 0: [TypeMention] MyExtensions
|
||||
# 84| 0: [LocalVariableAccess] access to local variable s
|
||||
# 84| 1: [BoolLiteral] false
|
||||
# 85| 24: [ExprStmt] ...;
|
||||
# 85| 0: [MethodCall] call to extension accessor get_StaticProp
|
||||
# 85| 0: [ExtensionOperatorCall] call to operator --
|
||||
# 85| -1: [TypeAccess] access to type MyExtensions
|
||||
# 85| 0: [TypeMention] MyExtensions
|
||||
# 88| 7: [Method] CallingGenericExtensions
|
||||
# 88| -1: [TypeMention] Void
|
||||
# 89| 4: [BlockStmt] {...}
|
||||
# 90| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 90| 0: [LocalVariableDeclAndInitExpr] String s = ...
|
||||
# 90| -1: [TypeMention] string
|
||||
# 85| 0: [LocalVariableAccess] access to local variable s
|
||||
# 88| 25: [ExprStmt] ...;
|
||||
# 88| 0: [MethodCall] call to extension accessor get_Prop1
|
||||
# 88| -1: [TypeAccess] access to type MyExtensions
|
||||
# 88| 0: [TypeMention] MyExtensions
|
||||
# 88| 0: [LocalVariableAccess] access to local variable s
|
||||
# 89| 26: [ExprStmt] ...;
|
||||
# 89| 0: [MethodCall] call to extension accessor get_Prop2
|
||||
# 89| -1: [TypeAccess] access to type MyExtensions
|
||||
# 89| 0: [TypeMention] MyExtensions
|
||||
# 89| 0: [LocalVariableAccess] access to local variable s
|
||||
# 90| 27: [ExprStmt] ...;
|
||||
# 90| 0: [MethodCall] call to extension accessor set_Prop2
|
||||
# 90| -1: [TypeAccess] access to type MyExtensions
|
||||
# 90| 0: [TypeMention] MyExtensions
|
||||
# 90| 0: [LocalVariableAccess] access to local variable s
|
||||
# 90| 1: [StringLiteralUtf16] "Hello Generic World."
|
||||
# 91| 1: [LocalVariableDeclStmt] ... ...;
|
||||
# 91| 0: [LocalVariableDeclAndInitExpr] Object o = ...
|
||||
# 91| -1: [TypeMention] object
|
||||
# 91| 0: [LocalVariableAccess] access to local variable o
|
||||
# 91| 1: [ObjectCreation] object creation of type Object
|
||||
# 91| 0: [TypeMention] object
|
||||
# 94| 2: [ExprStmt] ...;
|
||||
# 94| 0: [MethodCall] call to method GenericM1
|
||||
# 94| -1: [LocalVariableAccess] access to local variable o
|
||||
# 95| 3: [ExprStmt] ...;
|
||||
# 95| 0: [MethodCall] call to method GenericM1
|
||||
# 95| -1: [LocalVariableAccess] access to local variable s
|
||||
# 98| 4: [ExprStmt] ...;
|
||||
# 98| 0: [MethodCall] call to method GenericM1
|
||||
# 98| -1: [TypeAccess] access to type MyExtensions
|
||||
# 98| 0: [TypeMention] MyExtensions
|
||||
# 98| 0: [LocalVariableAccess] access to local variable o
|
||||
# 99| 5: [ExprStmt] ...;
|
||||
# 99| 0: [MethodCall] call to method GenericM1
|
||||
# 99| -1: [TypeAccess] access to type MyExtensions
|
||||
# 99| 0: [TypeMention] MyExtensions
|
||||
# 99| 0: [LocalVariableAccess] access to local variable s
|
||||
# 101| 6: [ExprStmt] ...;
|
||||
# 101| 0: [MethodCall] call to method GenericM2<Int32>
|
||||
# 101| -1: [LocalVariableAccess] access to local variable o
|
||||
# 101| 0: [IntLiteral] 42
|
||||
# 102| 7: [ExprStmt] ...;
|
||||
# 102| 0: [MethodCall] call to method GenericM2<Int32>
|
||||
# 102| -1: [TypeAccess] access to type MyExtensions
|
||||
# 102| 0: [TypeMention] MyExtensions
|
||||
# 102| 0: [LocalVariableAccess] access to local variable o
|
||||
# 102| 1: [IntLiteral] 42
|
||||
# 104| 8: [ExprStmt] ...;
|
||||
# 104| 0: [MethodCall] call to method StringGenericM1<Int32>
|
||||
# 104| -1: [LocalVariableAccess] access to local variable s
|
||||
# 104| 0: [IntLiteral] 7
|
||||
# 104| 1: [ObjectCreation] object creation of type Object
|
||||
# 104| 0: [TypeMention] object
|
||||
# 105| 9: [ExprStmt] ...;
|
||||
# 105| 0: [MethodCall] call to method StringGenericM1<String>
|
||||
# 90| 1: [BoolLiteral] false
|
||||
# 91| 28: [ExprStmt] ...;
|
||||
# 91| 0: [MethodCall] call to extension accessor get_StaticProp
|
||||
# 91| -1: [TypeAccess] access to type MyExtensions
|
||||
# 91| 0: [TypeMention] MyExtensions
|
||||
# 94| 7: [Method] CallingGenericExtensions
|
||||
# 94| -1: [TypeMention] Void
|
||||
# 95| 4: [BlockStmt] {...}
|
||||
# 96| 0: [LocalVariableDeclStmt] ... ...;
|
||||
# 96| 0: [LocalVariableDeclAndInitExpr] String s = ...
|
||||
# 96| -1: [TypeMention] string
|
||||
# 96| 0: [LocalVariableAccess] access to local variable s
|
||||
# 96| 1: [StringLiteralUtf16] "Hello Generic World."
|
||||
# 97| 1: [LocalVariableDeclStmt] ... ...;
|
||||
# 97| 0: [LocalVariableDeclAndInitExpr] Object o = ...
|
||||
# 97| -1: [TypeMention] object
|
||||
# 97| 0: [LocalVariableAccess] access to local variable o
|
||||
# 97| 1: [ObjectCreation] object creation of type Object
|
||||
# 97| 0: [TypeMention] object
|
||||
# 100| 2: [ExprStmt] ...;
|
||||
# 100| 0: [MethodCall] call to method GenericM1
|
||||
# 100| -1: [LocalVariableAccess] access to local variable o
|
||||
# 101| 3: [ExprStmt] ...;
|
||||
# 101| 0: [MethodCall] call to method GenericM1
|
||||
# 101| -1: [LocalVariableAccess] access to local variable s
|
||||
# 104| 4: [ExprStmt] ...;
|
||||
# 104| 0: [MethodCall] call to method GenericM1
|
||||
# 104| -1: [TypeAccess] access to type MyExtensions
|
||||
# 104| 0: [TypeMention] MyExtensions
|
||||
# 104| 0: [LocalVariableAccess] access to local variable o
|
||||
# 105| 5: [ExprStmt] ...;
|
||||
# 105| 0: [MethodCall] call to method GenericM1
|
||||
# 105| -1: [TypeAccess] access to type MyExtensions
|
||||
# 105| 0: [TypeMention] MyExtensions
|
||||
# 105| 0: [LocalVariableAccess] access to local variable s
|
||||
# 105| 1: [StringLiteralUtf16] "test"
|
||||
# 105| 2: [ObjectCreation] object creation of type Object
|
||||
# 105| 0: [TypeMention] object
|
||||
# 107| 6: [ExprStmt] ...;
|
||||
# 107| 0: [MethodCall] call to method GenericM2<Int32>
|
||||
# 107| -1: [LocalVariableAccess] access to local variable o
|
||||
# 107| 0: [IntLiteral] 42
|
||||
# 108| 7: [ExprStmt] ...;
|
||||
# 108| 0: [MethodCall] call to method GenericM2<Int32>
|
||||
# 108| -1: [TypeAccess] access to type MyExtensions
|
||||
# 108| 0: [TypeMention] MyExtensions
|
||||
# 108| 0: [LocalVariableAccess] access to local variable o
|
||||
# 108| 1: [IntLiteral] 42
|
||||
# 110| 8: [ExprStmt] ...;
|
||||
# 110| 0: [MethodCall] call to method StringGenericM1<Int32>
|
||||
# 110| -1: [LocalVariableAccess] access to local variable s
|
||||
# 110| 0: [IntLiteral] 7
|
||||
# 110| 1: [ObjectCreation] object creation of type Object
|
||||
# 110| 0: [TypeMention] object
|
||||
# 111| 9: [ExprStmt] ...;
|
||||
# 111| 0: [MethodCall] call to method StringGenericM1<String>
|
||||
# 111| -1: [TypeAccess] access to type MyExtensions
|
||||
# 111| 0: [TypeMention] MyExtensions
|
||||
# 111| 0: [LocalVariableAccess] access to local variable s
|
||||
# 111| 1: [StringLiteralUtf16] "test"
|
||||
# 111| 2: [ObjectCreation] object creation of type Object
|
||||
# 111| 0: [TypeMention] object
|
||||
|
||||
@@ -5,10 +5,10 @@ extensionTypeReceiverParameter
|
||||
| extensionTypes.cs:18:5:21:5 | extension(Int32) | extensionTypes.cs:18:23:18:24 | i3 |
|
||||
| extensionTypes.cs:22:5:25:5 | extension(String) | extensionTypes.cs:22:23:22:23 | s |
|
||||
| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | extensionTypes.cs:26:42:26:43 | t1 |
|
||||
| extensions.cs:6:5:17:5 | extension(String) | extensions.cs:6:22:6:22 | s |
|
||||
| extensions.cs:26:5:35:5 | extension(Object)<Object> | extensions.cs:26:20:26:20 | t |
|
||||
| extensions.cs:26:5:35:5 | extension(String)<String> | extensions.cs:26:20:26:20 | t |
|
||||
| extensions.cs:26:5:35:5 | extension(T)`1 | extensions.cs:26:20:26:20 | t |
|
||||
| extensions.cs:6:5:19:5 | extension(String) | extensions.cs:6:22:6:22 | s |
|
||||
| extensions.cs:28:5:37:5 | extension(Object)<Object> | extensions.cs:28:20:28:20 | t |
|
||||
| extensions.cs:28:5:37:5 | extension(String)<String> | extensions.cs:28:20:28:20 | t |
|
||||
| extensions.cs:28:5:37:5 | extension(T)`1 | extensions.cs:28:20:28:20 | t |
|
||||
extensionTypeExtendedType
|
||||
| extensionTypes.cs:6:5:9:5 | extension(String) | string |
|
||||
| extensionTypes.cs:10:5:13:5 | extension(Int32) | int |
|
||||
@@ -16,11 +16,11 @@ extensionTypeExtendedType
|
||||
| extensionTypes.cs:18:5:21:5 | extension(Int32) | int |
|
||||
| extensionTypes.cs:22:5:25:5 | extension(String) | string |
|
||||
| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | T1 |
|
||||
| extensions.cs:6:5:17:5 | extension(String) | string |
|
||||
| extensions.cs:19:5:24:5 | extension(Object) | object |
|
||||
| extensions.cs:26:5:35:5 | extension(Object)<Object> | object |
|
||||
| extensions.cs:26:5:35:5 | extension(String)<String> | string |
|
||||
| extensions.cs:26:5:35:5 | extension(T)`1 | T |
|
||||
| extensions.cs:6:5:19:5 | extension(String) | string |
|
||||
| extensions.cs:21:5:26:5 | extension(Object) | object |
|
||||
| extensions.cs:28:5:37:5 | extension(Object)<Object> | object |
|
||||
| extensions.cs:28:5:37:5 | extension(String)<String> | string |
|
||||
| extensions.cs:28:5:37:5 | extension(T)`1 | T |
|
||||
extensionTypeReceiverParameterAttribute
|
||||
| extensionTypes.cs:6:5:9:5 | extension(String) | extensionTypes.cs:6:32:6:32 | s | extensionTypes.cs:6:16:6:22 | [NotNull(...)] |
|
||||
| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | extensionTypes.cs:26:42:26:43 | t1 | extensionTypes.cs:26:20:26:30 | [NotNullWhen(...)] |
|
||||
@@ -30,7 +30,7 @@ extensionTypeReceiverParameterModifier
|
||||
| extensionTypes.cs:18:5:21:5 | extension(Int32) | extensionTypes.cs:18:23:18:24 | i3 | ref |
|
||||
extensionTypeParameterConstraints
|
||||
| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | extensionTypes.cs:26:15:26:16 | T1 | file://:0:0:0:0 | where T1: ... |
|
||||
| extensions.cs:26:5:35:5 | extension(T)`1 | extensions.cs:26:15:26:15 | T | file://:0:0:0:0 | where T: ... |
|
||||
| extensions.cs:28:5:37:5 | extension(T)`1 | extensions.cs:28:15:28:15 | T | file://:0:0:0:0 | where T: ... |
|
||||
syntheticParameterModifier
|
||||
| extensionTypes.cs:10:5:13:5 | extension(Int32) | extensionTypes.cs:12:21:12:23 | M21 | extensionTypes.cs:10:32:10:33 | i1 | ref readonly |
|
||||
| extensionTypes.cs:14:5:17:5 | extension(Int32) | extensionTypes.cs:16:21:16:23 | M31 | extensionTypes.cs:14:22:14:23 | i2 | in |
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user