From f0dc4f5ec32531fd22e06005b122b9f9edda3cd1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 14 Nov 2024 16:30:40 +0000 Subject: [PATCH 1/7] Swift: Convert the dataflow-taint-core-conversions test to labelled sources. --- .../dataflow/taint/core/LocalTaint.expected | 114 ++--- .../dataflow/taint/core/Taint.expected | 466 +++++++++--------- .../dataflow/taint/core/TaintInline.expected | 30 +- .../dataflow/taint/core/conversions.swift | 216 ++++---- 4 files changed, 413 insertions(+), 413 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index 06aba1f48bfd..c0a08c715a89 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -17,46 +17,46 @@ | conversions.swift:25:33:25:33 | self | conversions.swift:25:33:25:33 | SSA def(self) | | conversions.swift:26:22:26:22 | SSA def(self) | conversions.swift:26:22:26:38 | self[return] | | conversions.swift:26:22:26:22 | self | conversions.swift:26:22:26:22 | SSA def(self) | -| conversions.swift:35:18:35:28 | call to sourceInt() | conversions.swift:35:12:35:29 | call to Float.init(_:) | -| conversions.swift:36:19:36:29 | call to sourceInt() | conversions.swift:36:12:36:30 | call to String.init(_:) | -| conversions.swift:37:12:37:30 | call to String.init(_:) | conversions.swift:37:12:37:32 | .utf8 | -| conversions.swift:37:19:37:29 | call to sourceInt() | conversions.swift:37:12:37:30 | call to String.init(_:) | +| conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Float.init(_:) | +| conversions.swift:36:19:36:38 | call to sourceInt(_:) | conversions.swift:36:12:36:39 | call to String.init(_:) | +| conversions.swift:37:12:37:39 | call to String.init(_:) | conversions.swift:37:12:37:41 | .utf8 | +| conversions.swift:37:19:37:38 | call to sourceInt(_:) | conversions.swift:37:12:37:39 | call to String.init(_:) | | conversions.swift:39:6:39:6 | SSA def(arr) | conversions.swift:40:12:40:12 | arr | | conversions.swift:39:6:39:6 | arr | conversions.swift:39:6:39:6 | SSA def(arr) | -| conversions.swift:39:12:39:30 | [...] | conversions.swift:39:6:39:6 | arr | +| conversions.swift:39:12:39:39 | [...] | conversions.swift:39:6:39:6 | arr | | conversions.swift:40:12:40:12 | arr | conversions.swift:41:12:41:12 | arr | | conversions.swift:41:12:41:12 | [post] arr | conversions.swift:42:20:42:20 | arr | | conversions.swift:41:12:41:12 | arr | conversions.swift:41:12:41:17 | ...[...] | | conversions.swift:41:12:41:12 | arr | conversions.swift:42:20:42:20 | arr | | conversions.swift:42:20:42:20 | arr | conversions.swift:43:20:43:20 | arr | | conversions.swift:43:12:43:23 | call to Array.init(_:) | conversions.swift:43:12:43:26 | ...[...] | -| conversions.swift:44:20:44:33 | call to sourceString() | conversions.swift:44:20:44:35 | .utf8 | -| conversions.swift:45:12:45:39 | call to Array.init(_:) | conversions.swift:45:12:45:42 | ...[...] | -| conversions.swift:45:20:45:33 | call to sourceString() | conversions.swift:45:20:45:35 | .utf8 | +| conversions.swift:44:20:44:42 | call to sourceString(_:) | conversions.swift:44:20:44:44 | .utf8 | +| conversions.swift:45:12:45:48 | call to Array.init(_:) | conversions.swift:45:12:45:51 | ...[...] | +| conversions.swift:45:20:45:42 | call to sourceString(_:) | conversions.swift:45:20:45:44 | .utf8 | | conversions.swift:47:5:47:9 | let ...? | conversions.swift:47:9:47:9 | v | | conversions.swift:47:9:47:9 | SSA def(v) | conversions.swift:48:13:48:13 | v | | conversions.swift:47:9:47:9 | v | conversions.swift:47:9:47:9 | SSA def(v) | -| conversions.swift:47:13:47:23 | call to sourceInt() | conversions.swift:47:5:47:9 | let ...? | +| conversions.swift:47:13:47:32 | call to sourceInt(_:) | conversions.swift:47:5:47:9 | let ...? | | conversions.swift:51:6:51:6 | SSA def(v2) | conversions.swift:52:12:52:12 | v2 | | conversions.swift:51:6:51:6 | v2 | conversions.swift:51:6:51:6 | SSA def(v2) | | conversions.swift:51:6:51:10 | ... as ... | conversions.swift:51:6:51:6 | v2 | -| conversions.swift:51:18:51:41 | call to numericCast(_:) | conversions.swift:51:6:51:10 | ... as ... | -| conversions.swift:51:30:51:40 | call to sourceInt() | conversions.swift:51:18:51:41 | call to numericCast(_:) | +| conversions.swift:51:18:51:50 | call to numericCast(_:) | conversions.swift:51:6:51:10 | ... as ... | +| conversions.swift:51:30:51:49 | call to sourceInt(_:) | conversions.swift:51:18:51:50 | call to numericCast(_:) | | conversions.swift:54:6:54:6 | SSA def(v4) | conversions.swift:55:12:55:12 | v4 | | conversions.swift:54:6:54:6 | v4 | conversions.swift:54:6:54:6 | SSA def(v4) | | conversions.swift:54:6:54:10 | ... as ... | conversions.swift:54:6:54:6 | v4 | -| conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | conversions.swift:54:6:54:10 | ... as ... | -| conversions.swift:54:31:54:41 | call to sourceInt() | conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | +| conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | conversions.swift:54:6:54:10 | ... as ... | +| conversions.swift:54:31:54:50 | call to sourceInt(_:) | conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | | conversions.swift:57:6:57:6 | SSA def(v5) | conversions.swift:58:12:58:12 | v5 | | conversions.swift:57:6:57:6 | v5 | conversions.swift:57:6:57:6 | SSA def(v5) | -| conversions.swift:57:11:57:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:57:6:57:6 | v5 | +| conversions.swift:57:11:57:56 | call to Self.init(truncatingIfNeeded:) | conversions.swift:57:6:57:6 | v5 | | conversions.swift:60:6:60:6 | SSA def(v6) | conversions.swift:61:12:61:12 | v6 | | conversions.swift:60:6:60:6 | v6 | conversions.swift:60:6:60:6 | SSA def(v6) | -| conversions.swift:60:11:60:39 | call to UInt.init(bitPattern:) | conversions.swift:60:6:60:6 | v6 | +| conversions.swift:60:11:60:48 | call to UInt.init(bitPattern:) | conversions.swift:60:6:60:6 | v6 | | conversions.swift:63:6:63:6 | SSA def(v7) | conversions.swift:64:12:64:12 | v7 | | conversions.swift:63:6:63:6 | v7 | conversions.swift:63:6:63:6 | SSA def(v7) | -| conversions.swift:63:11:63:26 | call to abs(_:) | conversions.swift:63:6:63:6 | v7 | -| conversions.swift:63:15:63:25 | call to sourceInt() | conversions.swift:63:11:63:26 | call to abs(_:) | +| conversions.swift:63:11:63:35 | call to abs(_:) | conversions.swift:63:6:63:6 | v7 | +| conversions.swift:63:15:63:34 | call to sourceInt(_:) | conversions.swift:63:11:63:35 | call to abs(_:) | | conversions.swift:66:6:66:6 | SSA def(v8) | conversions.swift:67:12:67:12 | v8 | | conversions.swift:66:6:66:6 | v8 | conversions.swift:66:6:66:6 | SSA def(v8) | | conversions.swift:66:18:66:18 | 0 | conversions.swift:66:6:66:6 | v8 | @@ -64,13 +64,13 @@ | conversions.swift:67:12:67:12 | v8 | conversions.swift:68:12:68:12 | v8 | | conversions.swift:68:12:68:12 | [post] v8 | conversions.swift:69:12:69:12 | v8 | | conversions.swift:68:12:68:12 | v8 | conversions.swift:69:12:69:12 | v8 | -| conversions.swift:71:12:71:36 | call to Self.init(exactly:) | conversions.swift:71:12:71:37 | ...! | -| conversions.swift:72:12:72:39 | call to Self.init(exactly:) | conversions.swift:72:12:72:40 | ...! | -| conversions.swift:75:12:75:41 | call to Self.init(_:radix:) | conversions.swift:75:12:75:42 | ...! | -| conversions.swift:77:30:77:40 | call to sourceInt() | conversions.swift:77:12:77:41 | call to Self.init(littleEndian:) | -| conversions.swift:78:27:78:37 | call to sourceInt() | conversions.swift:78:12:78:38 | call to Self.init(bigEndian:) | -| conversions.swift:79:12:79:22 | call to sourceInt() | conversions.swift:79:12:79:24 | .littleEndian | -| conversions.swift:80:12:80:22 | call to sourceInt() | conversions.swift:80:12:80:24 | .bigEndian | +| conversions.swift:71:12:71:45 | call to Self.init(exactly:) | conversions.swift:71:12:71:46 | ...! | +| conversions.swift:72:12:72:48 | call to Self.init(exactly:) | conversions.swift:72:12:72:49 | ...! | +| conversions.swift:75:12:75:50 | call to Self.init(_:radix:) | conversions.swift:75:12:75:51 | ...! | +| conversions.swift:77:30:77:49 | call to sourceInt(_:) | conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | +| conversions.swift:78:27:78:46 | call to sourceInt(_:) | conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | +| conversions.swift:79:12:79:31 | call to sourceInt(_:) | conversions.swift:79:12:79:33 | .littleEndian | +| conversions.swift:80:12:80:31 | call to sourceInt(_:) | conversions.swift:80:12:80:33 | .bigEndian | | conversions.swift:82:7:82:7 | SSA def(q1) | conversions.swift:83:12:83:12 | q1 | | conversions.swift:82:7:82:7 | q1 | conversions.swift:82:7:82:7 | SSA def(q1) | | conversions.swift:82:11:82:11 | SSA def(r1) | conversions.swift:84:12:84:12 | r1 | @@ -80,12 +80,12 @@ | conversions.swift:86:7:86:7 | q2 | conversions.swift:86:7:86:7 | SSA def(q2) | | conversions.swift:86:11:86:11 | SSA def(r2) | conversions.swift:88:12:88:12 | r2 | | conversions.swift:86:11:86:11 | r2 | conversions.swift:86:11:86:11 | SSA def(r2) | -| conversions.swift:86:17:86:63 | call to quotientAndRemainder(dividingBy:) | conversions.swift:86:6:86:13 | (...) | +| conversions.swift:86:17:86:72 | call to quotientAndRemainder(dividingBy:) | conversions.swift:86:6:86:13 | (...) | | conversions.swift:90:7:90:7 | SSA def(q3) | conversions.swift:91:12:91:12 | q3 | | conversions.swift:90:7:90:7 | q3 | conversions.swift:90:7:90:7 | SSA def(q3) | | conversions.swift:90:11:90:11 | SSA def(r3) | conversions.swift:92:12:92:12 | r3 | | conversions.swift:90:11:90:11 | r3 | conversions.swift:90:11:90:11 | SSA def(r3) | -| conversions.swift:90:17:90:66 | call to quotientAndRemainder(dividingBy:) | conversions.swift:90:6:90:13 | (...) | +| conversions.swift:90:17:90:75 | call to quotientAndRemainder(dividingBy:) | conversions.swift:90:6:90:13 | (...) | | conversions.swift:94:6:94:6 | SSA def(pair1) | conversions.swift:95:12:95:12 | pair1 | | conversions.swift:94:6:94:6 | pair1 | conversions.swift:94:6:94:6 | SSA def(pair1) | | conversions.swift:94:14:94:44 | call to addingReportingOverflow(_:) | conversions.swift:94:6:94:6 | pair1 | @@ -93,38 +93,38 @@ | conversions.swift:95:12:95:12 | pair1 | conversions.swift:96:12:96:12 | pair1 | | conversions.swift:98:6:98:6 | SSA def(pair2) | conversions.swift:99:12:99:12 | pair2 | | conversions.swift:98:6:98:6 | pair2 | conversions.swift:98:6:98:6 | SSA def(pair2) | -| conversions.swift:98:14:98:51 | call to addingReportingOverflow(_:) | conversions.swift:98:6:98:6 | pair2 | +| conversions.swift:98:14:98:60 | call to addingReportingOverflow(_:) | conversions.swift:98:6:98:6 | pair2 | | conversions.swift:99:12:99:12 | [post] pair2 | conversions.swift:100:12:100:12 | pair2 | | conversions.swift:99:12:99:12 | pair2 | conversions.swift:100:12:100:12 | pair2 | | conversions.swift:102:6:102:6 | SSA def(pair3) | conversions.swift:103:12:103:12 | pair3 | | conversions.swift:102:6:102:6 | pair3 | conversions.swift:102:6:102:6 | SSA def(pair3) | -| conversions.swift:102:14:102:54 | call to addingReportingOverflow(_:) | conversions.swift:102:6:102:6 | pair3 | +| conversions.swift:102:14:102:63 | call to addingReportingOverflow(_:) | conversions.swift:102:6:102:6 | pair3 | | conversions.swift:103:12:103:12 | [post] pair3 | conversions.swift:104:12:104:12 | pair3 | | conversions.swift:103:12:103:12 | pair3 | conversions.swift:104:12:104:12 | pair3 | -| conversions.swift:109:18:109:30 | call to sourceFloat() | conversions.swift:109:12:109:31 | call to Float.init(_:) | -| conversions.swift:111:19:111:31 | call to sourceFloat() | conversions.swift:111:12:111:32 | call to String.init(_:) | -| conversions.swift:112:12:112:32 | call to String.init(_:) | conversions.swift:112:12:112:34 | .utf8 | -| conversions.swift:112:19:112:31 | call to sourceFloat() | conversions.swift:112:12:112:32 | call to String.init(_:) | -| conversions.swift:113:19:113:33 | call to sourceFloat80() | conversions.swift:113:12:113:34 | call to String.init(_:) | -| conversions.swift:114:12:114:34 | call to String.init(_:) | conversions.swift:114:12:114:36 | .utf8 | -| conversions.swift:114:19:114:33 | call to sourceFloat80() | conversions.swift:114:12:114:34 | call to String.init(_:) | -| conversions.swift:115:19:115:32 | call to sourceDouble() | conversions.swift:115:12:115:33 | call to String.init(_:) | -| conversions.swift:116:12:116:33 | call to String.init(_:) | conversions.swift:116:12:116:35 | .utf8 | -| conversions.swift:116:19:116:32 | call to sourceDouble() | conversions.swift:116:12:116:33 | call to String.init(_:) | -| conversions.swift:118:18:118:30 | call to sourceFloat() | conversions.swift:118:12:118:31 | call to Float.init(_:) | -| conversions.swift:119:41:119:51 | call to sourceInt() | conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:119:67:119:67 | 0.0 | conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:120:41:120:41 | 0 | conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:120:57:120:69 | call to sourceFloat() | conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:121:54:121:54 | 0.0 | conversions.swift:121:12:121:57 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:122:44:122:56 | call to sourceFloat() | conversions.swift:122:12:122:57 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:124:12:124:24 | call to sourceFloat() | conversions.swift:124:12:124:26 | .exponent | -| conversions.swift:125:12:125:24 | call to sourceFloat() | conversions.swift:125:12:125:26 | .significand | -| conversions.swift:126:12:126:26 | call to sourceFloat80() | conversions.swift:126:12:126:28 | .exponent | -| conversions.swift:127:12:127:26 | call to sourceFloat80() | conversions.swift:127:12:127:28 | .significand | -| conversions.swift:128:12:128:25 | call to sourceDouble() | conversions.swift:128:12:128:27 | .exponent | -| conversions.swift:129:12:129:25 | call to sourceDouble() | conversions.swift:129:12:129:27 | .significand | -| conversions.swift:136:19:136:32 | call to sourceString() | conversions.swift:136:12:136:33 | call to String.init(_:) | +| conversions.swift:109:18:109:39 | call to sourceFloat(_:) | conversions.swift:109:12:109:40 | call to Float.init(_:) | +| conversions.swift:111:19:111:40 | call to sourceFloat(_:) | conversions.swift:111:12:111:41 | call to String.init(_:) | +| conversions.swift:112:12:112:41 | call to String.init(_:) | conversions.swift:112:12:112:43 | .utf8 | +| conversions.swift:112:19:112:40 | call to sourceFloat(_:) | conversions.swift:112:12:112:41 | call to String.init(_:) | +| conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | conversions.swift:113:12:113:43 | call to String.init(_:) | +| conversions.swift:114:12:114:43 | call to String.init(_:) | conversions.swift:114:12:114:45 | .utf8 | +| conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | conversions.swift:114:12:114:43 | call to String.init(_:) | +| conversions.swift:115:19:115:41 | call to sourceDouble(_:) | conversions.swift:115:12:115:42 | call to String.init(_:) | +| conversions.swift:116:12:116:42 | call to String.init(_:) | conversions.swift:116:12:116:44 | .utf8 | +| conversions.swift:116:19:116:41 | call to sourceDouble(_:) | conversions.swift:116:12:116:42 | call to String.init(_:) | +| conversions.swift:118:18:118:39 | call to sourceFloat(_:) | conversions.swift:118:12:118:40 | call to Float.init(_:) | +| conversions.swift:119:41:119:60 | call to sourceInt(_:) | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:119:76:119:76 | 0.0 | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:120:41:120:41 | 0 | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:120:57:120:78 | call to sourceFloat(_:) | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:121:63:121:63 | 0.0 | conversions.swift:121:12:121:66 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:122:44:122:65 | call to sourceFloat(_:) | conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:124:12:124:33 | call to sourceFloat(_:) | conversions.swift:124:12:124:35 | .exponent | +| conversions.swift:125:12:125:33 | call to sourceFloat(_:) | conversions.swift:125:12:125:35 | .significand | +| conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | conversions.swift:126:12:126:37 | .exponent | +| conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | conversions.swift:127:12:127:37 | .significand | +| conversions.swift:128:12:128:34 | call to sourceDouble(_:) | conversions.swift:128:12:128:36 | .exponent | +| conversions.swift:129:12:129:34 | call to sourceDouble(_:) | conversions.swift:129:12:129:36 | .significand | +| conversions.swift:136:19:136:42 | call to sourceString(_:) | conversions.swift:136:12:136:43 | call to String.init(_:) | | conversions.swift:138:6:138:6 | SSA def(ms1) | conversions.swift:139:12:139:12 | ms1 | | conversions.swift:138:6:138:6 | ms1 | conversions.swift:138:6:138:6 | SSA def(ms1) | | conversions.swift:138:12:138:26 | call to MyString.init(_:) | conversions.swift:138:12:138:27 | ...! | @@ -140,9 +140,9 @@ | conversions.swift:141:12:141:12 | ms1 | conversions.swift:142:12:142:12 | ms1 | | conversions.swift:144:6:144:6 | SSA def(ms2) | conversions.swift:145:12:145:12 | ms2 | | conversions.swift:144:6:144:6 | ms2 | conversions.swift:144:6:144:6 | SSA def(ms2) | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:144:12:144:36 | ...! | -| conversions.swift:144:12:144:36 | ...! | conversions.swift:144:6:144:6 | ms2 | -| conversions.swift:144:21:144:34 | call to sourceString() | conversions.swift:144:12:144:35 | call to MyString.init(_:) | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:144:12:144:46 | ...! | +| conversions.swift:144:12:144:46 | ...! | conversions.swift:144:6:144:6 | ms2 | +| conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:144:12:144:45 | call to MyString.init(_:) | | conversions.swift:145:12:145:12 | [post] ms2 | conversions.swift:146:12:146:12 | ms2 | | conversions.swift:145:12:145:12 | ms2 | conversions.swift:146:12:146:12 | ms2 | | conversions.swift:146:12:146:12 | [post] ms2 | conversions.swift:147:12:147:12 | ms2 | @@ -154,7 +154,7 @@ | conversions.swift:152:6:152:6 | SSA def(parent) | conversions.swift:153:12:153:12 | parent | | conversions.swift:152:6:152:6 | parent | conversions.swift:152:6:152:6 | SSA def(parent) | | conversions.swift:152:6:152:15 | ... as ... | conversions.swift:152:6:152:6 | parent | -| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:152:6:152:15 | ... as ... | +| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:152:6:152:15 | ... as ... | | conversions.swift:153:12:153:12 | [post] parent | conversions.swift:154:12:154:12 | parent | | conversions.swift:153:12:153:12 | parent | conversions.swift:154:12:154:12 | parent | | conversions.swift:154:12:154:12 | [post] parent | conversions.swift:156:40:156:40 | parent | @@ -175,7 +175,7 @@ | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:171:7:171:7 | arr1 | | conversions.swift:172:7:172:7 | SSA def(arr2) | conversions.swift:174:13:174:13 | arr2 | | conversions.swift:172:7:172:7 | arr2 | conversions.swift:172:7:172:7 | SSA def(arr2) | -| conversions.swift:172:14:172:26 | [...] | conversions.swift:172:7:172:7 | arr2 | +| conversions.swift:172:14:172:33 | [...] | conversions.swift:172:7:172:7 | arr2 | | conversions.swift:173:13:173:13 | arr1 | conversions.swift:175:13:175:13 | arr1 | | conversions.swift:174:13:174:13 | arr2 | conversions.swift:176:13:176:13 | arr2 | | conversions.swift:175:13:175:13 | [post] arr1 | conversions.swift:178:25:178:25 | arr1 | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 104e2baa5450..38d1de0167e7 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -1,68 +1,68 @@ edges -| conversions.swift:35:18:35:28 | call to sourceInt() | conversions.swift:35:12:35:29 | call to Float.init(_:) | provenance | | -| conversions.swift:36:19:36:29 | call to sourceInt() | conversions.swift:36:12:36:30 | call to String.init(_:) | provenance | | -| conversions.swift:37:12:37:30 | call to String.init(_:) | conversions.swift:37:12:37:32 | .utf8 | provenance | | -| conversions.swift:37:19:37:29 | call to sourceInt() | conversions.swift:37:12:37:30 | call to String.init(_:) | provenance | | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:40:12:40:12 | arr | provenance | | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:41:12:41:12 | arr [Collection element] | provenance | | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:42:20:42:20 | arr [Collection element] | provenance | | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:43:20:43:20 | arr [Collection element] | provenance | | -| conversions.swift:39:19:39:29 | call to sourceInt() | conversions.swift:39:12:39:30 | [...] [Collection element] | provenance | | +| conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Float.init(_:) | provenance | | +| conversions.swift:36:19:36:38 | call to sourceInt(_:) | conversions.swift:36:12:36:39 | call to String.init(_:) | provenance | | +| conversions.swift:37:12:37:39 | call to String.init(_:) | conversions.swift:37:12:37:41 | .utf8 | provenance | | +| conversions.swift:37:19:37:38 | call to sourceInt(_:) | conversions.swift:37:12:37:39 | call to String.init(_:) | provenance | | +| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:40:12:40:12 | arr | provenance | | +| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:41:12:41:12 | arr [Collection element] | provenance | | +| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:42:20:42:20 | arr [Collection element] | provenance | | +| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:43:20:43:20 | arr [Collection element] | provenance | | +| conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:39:12:39:39 | [...] [Collection element] | provenance | | | conversions.swift:41:12:41:12 | arr [Collection element] | conversions.swift:41:12:41:17 | ...[...] | provenance | | | conversions.swift:42:20:42:20 | arr [Collection element] | conversions.swift:42:12:42:23 | call to Array.init(_:) | provenance | | | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | conversions.swift:43:12:43:26 | ...[...] | provenance | | | conversions.swift:43:20:43:20 | arr [Collection element] | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | provenance | | -| conversions.swift:44:20:44:33 | call to sourceString() | conversions.swift:44:20:44:35 | .utf8 | provenance | | -| conversions.swift:44:20:44:35 | .utf8 | conversions.swift:44:12:44:39 | call to Array.init(_:) | provenance | | -| conversions.swift:45:12:45:39 | call to Array.init(_:) [Collection element] | conversions.swift:45:12:45:42 | ...[...] | provenance | | -| conversions.swift:45:20:45:33 | call to sourceString() | conversions.swift:45:20:45:35 | .utf8 | provenance | | -| conversions.swift:45:20:45:35 | .utf8 | conversions.swift:45:12:45:39 | call to Array.init(_:) [Collection element] | provenance | | -| conversions.swift:47:13:47:23 | call to sourceInt() | conversions.swift:48:13:48:13 | v | provenance | | -| conversions.swift:51:18:51:41 | call to numericCast(_:) | conversions.swift:52:12:52:12 | v2 | provenance | | -| conversions.swift:51:30:51:40 | call to sourceInt() | conversions.swift:51:18:51:41 | call to numericCast(_:) | provenance | | -| conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | conversions.swift:55:12:55:12 | v4 | provenance | | -| conversions.swift:54:31:54:41 | call to sourceInt() | conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | provenance | | -| conversions.swift:63:11:63:26 | call to abs(_:) | conversions.swift:64:12:64:12 | v7 | provenance | | -| conversions.swift:63:15:63:25 | call to sourceInt() | conversions.swift:63:11:63:26 | call to abs(_:) | provenance | | -| conversions.swift:75:12:75:41 | call to Self.init(_:radix:) [some:0] | conversions.swift:75:12:75:42 | ...! | provenance | | -| conversions.swift:75:16:75:29 | call to sourceString() | conversions.swift:75:12:75:41 | call to Self.init(_:radix:) [some:0] | provenance | | -| conversions.swift:77:30:77:40 | call to sourceInt() | conversions.swift:77:12:77:41 | call to Self.init(littleEndian:) | provenance | | -| conversions.swift:78:27:78:37 | call to sourceInt() | conversions.swift:78:12:78:38 | call to Self.init(bigEndian:) | provenance | | -| conversions.swift:79:12:79:22 | call to sourceInt() | conversions.swift:79:12:79:24 | .littleEndian | provenance | | -| conversions.swift:80:12:80:22 | call to sourceInt() | conversions.swift:80:12:80:24 | .bigEndian | provenance | | -| conversions.swift:109:18:109:30 | call to sourceFloat() | conversions.swift:109:12:109:31 | call to Float.init(_:) | provenance | | -| conversions.swift:111:19:111:31 | call to sourceFloat() | conversions.swift:111:12:111:32 | call to String.init(_:) | provenance | | -| conversions.swift:112:12:112:32 | call to String.init(_:) | conversions.swift:112:12:112:34 | .utf8 | provenance | | -| conversions.swift:112:19:112:31 | call to sourceFloat() | conversions.swift:112:12:112:32 | call to String.init(_:) | provenance | | -| conversions.swift:113:19:113:33 | call to sourceFloat80() | conversions.swift:113:12:113:34 | call to String.init(_:) | provenance | | -| conversions.swift:114:12:114:34 | call to String.init(_:) | conversions.swift:114:12:114:36 | .utf8 | provenance | | -| conversions.swift:114:19:114:33 | call to sourceFloat80() | conversions.swift:114:12:114:34 | call to String.init(_:) | provenance | | -| conversions.swift:115:19:115:32 | call to sourceDouble() | conversions.swift:115:12:115:33 | call to String.init(_:) | provenance | | -| conversions.swift:116:12:116:33 | call to String.init(_:) | conversions.swift:116:12:116:35 | .utf8 | provenance | | -| conversions.swift:116:19:116:32 | call to sourceDouble() | conversions.swift:116:12:116:33 | call to String.init(_:) | provenance | | -| conversions.swift:118:18:118:30 | call to sourceFloat() | conversions.swift:118:12:118:31 | call to Float.init(_:) | provenance | | -| conversions.swift:119:41:119:51 | call to sourceInt() | conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | provenance | | -| conversions.swift:120:57:120:69 | call to sourceFloat() | conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | provenance | | -| conversions.swift:122:44:122:56 | call to sourceFloat() | conversions.swift:122:12:122:57 | call to Float.init(signOf:magnitudeOf:) | provenance | | -| conversions.swift:124:12:124:24 | call to sourceFloat() | conversions.swift:124:12:124:26 | .exponent | provenance | | -| conversions.swift:125:12:125:24 | call to sourceFloat() | conversions.swift:125:12:125:26 | .significand | provenance | | -| conversions.swift:126:12:126:26 | call to sourceFloat80() | conversions.swift:126:12:126:28 | .exponent | provenance | | -| conversions.swift:127:12:127:26 | call to sourceFloat80() | conversions.swift:127:12:127:28 | .significand | provenance | | -| conversions.swift:128:12:128:25 | call to sourceDouble() | conversions.swift:128:12:128:27 | .exponent | provenance | | -| conversions.swift:129:12:129:25 | call to sourceDouble() | conversions.swift:129:12:129:27 | .significand | provenance | | -| conversions.swift:136:19:136:32 | call to sourceString() | conversions.swift:136:12:136:33 | call to String.init(_:) | provenance | | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:144:12:144:35 | call to MyString.init(_:) [some:0] | provenance | | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:145:12:145:12 | ms2 | provenance | | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:146:12:146:16 | .description | provenance | | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:147:12:147:16 | .debugDescription | provenance | | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) [some:0] | conversions.swift:144:12:144:36 | ...! | provenance | | -| conversions.swift:144:12:144:36 | ...! | conversions.swift:145:12:145:12 | ms2 | provenance | | -| conversions.swift:144:12:144:36 | ...! | conversions.swift:146:12:146:16 | .description | provenance | | -| conversions.swift:144:12:144:36 | ...! | conversions.swift:147:12:147:16 | .debugDescription | provenance | | -| conversions.swift:144:21:144:34 | call to sourceString() | conversions.swift:144:12:144:35 | call to MyString.init(_:) | provenance | | -| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:153:12:153:12 | parent | provenance | | -| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:154:12:154:12 | parent | provenance | | -| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:156:40:156:40 | parent | provenance | | +| conversions.swift:44:20:44:42 | call to sourceString(_:) | conversions.swift:44:20:44:44 | .utf8 | provenance | | +| conversions.swift:44:20:44:44 | .utf8 | conversions.swift:44:12:44:48 | call to Array.init(_:) | provenance | | +| conversions.swift:45:12:45:48 | call to Array.init(_:) [Collection element] | conversions.swift:45:12:45:51 | ...[...] | provenance | | +| conversions.swift:45:20:45:42 | call to sourceString(_:) | conversions.swift:45:20:45:44 | .utf8 | provenance | | +| conversions.swift:45:20:45:44 | .utf8 | conversions.swift:45:12:45:48 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:47:13:47:32 | call to sourceInt(_:) | conversions.swift:48:13:48:13 | v | provenance | | +| conversions.swift:51:18:51:50 | call to numericCast(_:) | conversions.swift:52:12:52:12 | v2 | provenance | | +| conversions.swift:51:30:51:49 | call to sourceInt(_:) | conversions.swift:51:18:51:50 | call to numericCast(_:) | provenance | | +| conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | conversions.swift:55:12:55:12 | v4 | provenance | | +| conversions.swift:54:31:54:50 | call to sourceInt(_:) | conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | provenance | | +| conversions.swift:63:11:63:35 | call to abs(_:) | conversions.swift:64:12:64:12 | v7 | provenance | | +| conversions.swift:63:15:63:34 | call to sourceInt(_:) | conversions.swift:63:11:63:35 | call to abs(_:) | provenance | | +| conversions.swift:75:12:75:50 | call to Self.init(_:radix:) [some:0] | conversions.swift:75:12:75:51 | ...! | provenance | | +| conversions.swift:75:16:75:38 | call to sourceString(_:) | conversions.swift:75:12:75:50 | call to Self.init(_:radix:) [some:0] | provenance | | +| conversions.swift:77:30:77:49 | call to sourceInt(_:) | conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | provenance | | +| conversions.swift:78:27:78:46 | call to sourceInt(_:) | conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | provenance | | +| conversions.swift:79:12:79:31 | call to sourceInt(_:) | conversions.swift:79:12:79:33 | .littleEndian | provenance | | +| conversions.swift:80:12:80:31 | call to sourceInt(_:) | conversions.swift:80:12:80:33 | .bigEndian | provenance | | +| conversions.swift:109:18:109:39 | call to sourceFloat(_:) | conversions.swift:109:12:109:40 | call to Float.init(_:) | provenance | | +| conversions.swift:111:19:111:40 | call to sourceFloat(_:) | conversions.swift:111:12:111:41 | call to String.init(_:) | provenance | | +| conversions.swift:112:12:112:41 | call to String.init(_:) | conversions.swift:112:12:112:43 | .utf8 | provenance | | +| conversions.swift:112:19:112:40 | call to sourceFloat(_:) | conversions.swift:112:12:112:41 | call to String.init(_:) | provenance | | +| conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | conversions.swift:113:12:113:43 | call to String.init(_:) | provenance | | +| conversions.swift:114:12:114:43 | call to String.init(_:) | conversions.swift:114:12:114:45 | .utf8 | provenance | | +| conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | conversions.swift:114:12:114:43 | call to String.init(_:) | provenance | | +| conversions.swift:115:19:115:41 | call to sourceDouble(_:) | conversions.swift:115:12:115:42 | call to String.init(_:) | provenance | | +| conversions.swift:116:12:116:42 | call to String.init(_:) | conversions.swift:116:12:116:44 | .utf8 | provenance | | +| conversions.swift:116:19:116:41 | call to sourceDouble(_:) | conversions.swift:116:12:116:42 | call to String.init(_:) | provenance | | +| conversions.swift:118:18:118:39 | call to sourceFloat(_:) | conversions.swift:118:12:118:40 | call to Float.init(_:) | provenance | | +| conversions.swift:119:41:119:60 | call to sourceInt(_:) | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | provenance | | +| conversions.swift:120:57:120:78 | call to sourceFloat(_:) | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | provenance | | +| conversions.swift:122:44:122:65 | call to sourceFloat(_:) | conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | provenance | | +| conversions.swift:124:12:124:33 | call to sourceFloat(_:) | conversions.swift:124:12:124:35 | .exponent | provenance | | +| conversions.swift:125:12:125:33 | call to sourceFloat(_:) | conversions.swift:125:12:125:35 | .significand | provenance | | +| conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | conversions.swift:126:12:126:37 | .exponent | provenance | | +| conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | conversions.swift:127:12:127:37 | .significand | provenance | | +| conversions.swift:128:12:128:34 | call to sourceDouble(_:) | conversions.swift:128:12:128:36 | .exponent | provenance | | +| conversions.swift:129:12:129:34 | call to sourceDouble(_:) | conversions.swift:129:12:129:36 | .significand | provenance | | +| conversions.swift:136:19:136:42 | call to sourceString(_:) | conversions.swift:136:12:136:43 | call to String.init(_:) | provenance | | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:144:12:144:45 | call to MyString.init(_:) [some:0] | provenance | | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:145:12:145:12 | ms2 | provenance | | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:146:12:146:16 | .description | provenance | | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:147:12:147:16 | .debugDescription | provenance | | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) [some:0] | conversions.swift:144:12:144:46 | ...! | provenance | | +| conversions.swift:144:12:144:46 | ...! | conversions.swift:145:12:145:12 | ms2 | provenance | | +| conversions.swift:144:12:144:46 | ...! | conversions.swift:146:12:146:16 | .description | provenance | | +| conversions.swift:144:12:144:46 | ...! | conversions.swift:147:12:147:16 | .debugDescription | provenance | | +| conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:144:12:144:45 | call to MyString.init(_:) | provenance | | +| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:153:12:153:12 | parent | provenance | | +| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:154:12:154:12 | parent | provenance | | +| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:156:40:156:40 | parent | provenance | | | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:157:12:157:12 | v3 | provenance | | | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:158:12:158:12 | v3 | provenance | | | conversions.swift:156:40:156:40 | parent | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | provenance | | @@ -70,11 +70,11 @@ edges | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:175:13:175:19 | ...[...] | provenance | | | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:178:25:178:25 | arr1 | provenance | | | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:185:31:185:31 | arr1 | provenance | | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:174:13:174:13 | arr2 | provenance | | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:176:13:176:13 | arr2 [Collection element] | provenance | | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:179:25:179:25 | arr2 [Collection element] | provenance | | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:186:31:186:31 | arr2 [Collection element] | provenance | | -| conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:172:14:172:26 | [...] [Collection element] | provenance | | +| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:174:13:174:13 | arr2 | provenance | | +| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:176:13:176:13 | arr2 [Collection element] | provenance | | +| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:179:25:179:25 | arr2 [Collection element] | provenance | | +| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:186:31:186:31 | arr2 [Collection element] | provenance | | +| conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:172:14:172:33 | [...] [Collection element] | provenance | | | conversions.swift:176:13:176:13 | arr2 [Collection element] | conversions.swift:176:13:176:19 | ...[...] | provenance | | | conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:180:13:180:13 | arr1b | provenance | | | conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:182:13:182:13 | arr1b [Collection element] | provenance | | @@ -114,18 +114,18 @@ edges | conversions.swift:225:13:225:13 | withMyValue [v] | conversions.swift:225:13:225:25 | .v | provenance | | | conversions.swift:226:10:226:10 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | provenance | | | conversions.swift:226:10:226:10 | withMyValue [v] | conversions.swift:226:10:226:22 | .v | provenance | | -| conversions.swift:232:26:232:37 | call to sourceUInt() | conversions.swift:205:7:205:17 | withUInt | provenance | | -| conversions.swift:235:29:235:48 | call to MyValue.init(_:) [v] | conversions.swift:211:7:211:20 | withMyValue [v] | provenance | | -| conversions.swift:235:37:235:47 | call to sourceInt() | conversions.swift:199:7:199:12 | v | provenance | | -| conversions.swift:235:37:235:47 | call to sourceInt() | conversions.swift:235:29:235:48 | call to MyValue.init(_:) [v] | provenance | | -| conversions.swift:238:30:238:49 | call to MyValue.init(_:) [v] | conversions.swift:217:7:217:21 | withMyValue2 [v] | provenance | | -| conversions.swift:238:30:238:49 | call to MyValue.init(_:) [v] | conversions.swift:238:12:238:50 | call to Int.init(withMyValue2:) | provenance | | -| conversions.swift:238:38:238:48 | call to sourceInt() | conversions.swift:199:7:199:12 | v | provenance | | -| conversions.swift:238:38:238:48 | call to sourceInt() | conversions.swift:238:30:238:49 | call to MyValue.init(_:) [v] | provenance | | -| conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | conversions.swift:224:20:224:33 | withMyValue [v] | provenance | | -| conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | conversions.swift:241:12:241:55 | call to mkInt(withMyValue:) | provenance | | -| conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:199:7:199:12 | v | provenance | | -| conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | provenance | | +| conversions.swift:232:26:232:43 | call to sourceUInt(_:) | conversions.swift:205:7:205:17 | withUInt | provenance | | +| conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | conversions.swift:211:7:211:20 | withMyValue [v] | provenance | | +| conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | provenance | | +| conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | provenance | | +| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | conversions.swift:217:7:217:21 | withMyValue2 [v] | provenance | | +| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | provenance | | +| conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | provenance | | +| conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | provenance | | +| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | conversions.swift:224:20:224:33 | withMyValue [v] | provenance | | +| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | provenance | | +| conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | provenance | | +| conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | provenance | | | file://:0:0:0:0 | [post] self [first] | stringinterpolation.swift:6:6:6:6 | self [Return] [first] | provenance | | | file://:0:0:0:0 | [post] self [second] | stringinterpolation.swift:7:6:7:6 | self [Return] [second] | provenance | | | file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | provenance | | @@ -209,16 +209,16 @@ edges | try.swift:18:18:18:25 | call to source() | try.swift:18:18:18:25 | call to source() [some:0] | provenance | | | try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | provenance | | nodes -| conversions.swift:32:12:32:22 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:35:12:35:29 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:35:18:35:28 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:36:12:36:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:36:19:36:29 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:37:12:37:30 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:37:12:37:32 | .utf8 | semmle.label | .utf8 | -| conversions.swift:37:19:37:29 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:39:12:39:30 | [...] [Collection element] | semmle.label | [...] [Collection element] | -| conversions.swift:39:19:39:29 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:32:12:32:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:35:12:35:38 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:35:18:35:37 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:36:12:36:39 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:36:19:36:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:37:12:37:39 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:37:12:37:41 | .utf8 | semmle.label | .utf8 | +| conversions.swift:37:19:37:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:39:12:39:39 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| conversions.swift:39:19:39:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:40:12:40:12 | arr | semmle.label | arr | | conversions.swift:41:12:41:12 | arr [Collection element] | semmle.label | arr [Collection element] | | conversions.swift:41:12:41:17 | ...[...] | semmle.label | ...[...] | @@ -227,84 +227,84 @@ nodes | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | | conversions.swift:43:12:43:26 | ...[...] | semmle.label | ...[...] | | conversions.swift:43:20:43:20 | arr [Collection element] | semmle.label | arr [Collection element] | -| conversions.swift:44:12:44:39 | call to Array.init(_:) | semmle.label | call to Array.init(_:) | -| conversions.swift:44:20:44:33 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:44:20:44:35 | .utf8 | semmle.label | .utf8 | -| conversions.swift:45:12:45:39 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | -| conversions.swift:45:12:45:42 | ...[...] | semmle.label | ...[...] | -| conversions.swift:45:20:45:33 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:45:20:45:35 | .utf8 | semmle.label | .utf8 | -| conversions.swift:47:13:47:23 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:44:12:44:48 | call to Array.init(_:) | semmle.label | call to Array.init(_:) | +| conversions.swift:44:20:44:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:44:20:44:44 | .utf8 | semmle.label | .utf8 | +| conversions.swift:45:12:45:48 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | +| conversions.swift:45:12:45:51 | ...[...] | semmle.label | ...[...] | +| conversions.swift:45:20:45:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:45:20:45:44 | .utf8 | semmle.label | .utf8 | +| conversions.swift:47:13:47:32 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:48:13:48:13 | v | semmle.label | v | -| conversions.swift:51:18:51:41 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | -| conversions.swift:51:30:51:40 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:51:18:51:50 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | +| conversions.swift:51:30:51:49 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:52:12:52:12 | v2 | semmle.label | v2 | -| conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | -| conversions.swift:54:31:54:41 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | +| conversions.swift:54:31:54:50 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:55:12:55:12 | v4 | semmle.label | v4 | -| conversions.swift:63:11:63:26 | call to abs(_:) | semmle.label | call to abs(_:) | -| conversions.swift:63:15:63:25 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:63:11:63:35 | call to abs(_:) | semmle.label | call to abs(_:) | +| conversions.swift:63:15:63:34 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:64:12:64:12 | v7 | semmle.label | v7 | -| conversions.swift:75:12:75:41 | call to Self.init(_:radix:) [some:0] | semmle.label | call to Self.init(_:radix:) [some:0] | -| conversions.swift:75:12:75:42 | ...! | semmle.label | ...! | -| conversions.swift:75:16:75:29 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:77:12:77:41 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | -| conversions.swift:77:30:77:40 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:78:12:78:38 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | -| conversions.swift:78:27:78:37 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:79:12:79:22 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:79:12:79:24 | .littleEndian | semmle.label | .littleEndian | -| conversions.swift:80:12:80:22 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:80:12:80:24 | .bigEndian | semmle.label | .bigEndian | -| conversions.swift:108:12:108:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:109:12:109:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:109:18:109:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:111:12:111:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:111:19:111:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:112:12:112:32 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:112:12:112:34 | .utf8 | semmle.label | .utf8 | -| conversions.swift:112:19:112:31 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:113:12:113:34 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:113:19:113:33 | call to sourceFloat80() | semmle.label | call to sourceFloat80() | -| conversions.swift:114:12:114:34 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:114:12:114:36 | .utf8 | semmle.label | .utf8 | -| conversions.swift:114:19:114:33 | call to sourceFloat80() | semmle.label | call to sourceFloat80() | -| conversions.swift:115:12:115:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:115:19:115:32 | call to sourceDouble() | semmle.label | call to sourceDouble() | -| conversions.swift:116:12:116:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:116:12:116:35 | .utf8 | semmle.label | .utf8 | -| conversions.swift:116:19:116:32 | call to sourceDouble() | semmle.label | call to sourceDouble() | -| conversions.swift:118:12:118:31 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:118:18:118:30 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | -| conversions.swift:119:41:119:51 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | -| conversions.swift:120:57:120:69 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:122:12:122:57 | call to Float.init(signOf:magnitudeOf:) | semmle.label | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:122:44:122:56 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:124:12:124:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:124:12:124:26 | .exponent | semmle.label | .exponent | -| conversions.swift:125:12:125:24 | call to sourceFloat() | semmle.label | call to sourceFloat() | -| conversions.swift:125:12:125:26 | .significand | semmle.label | .significand | -| conversions.swift:126:12:126:26 | call to sourceFloat80() | semmle.label | call to sourceFloat80() | -| conversions.swift:126:12:126:28 | .exponent | semmle.label | .exponent | -| conversions.swift:127:12:127:26 | call to sourceFloat80() | semmle.label | call to sourceFloat80() | -| conversions.swift:127:12:127:28 | .significand | semmle.label | .significand | -| conversions.swift:128:12:128:25 | call to sourceDouble() | semmle.label | call to sourceDouble() | -| conversions.swift:128:12:128:27 | .exponent | semmle.label | .exponent | -| conversions.swift:129:12:129:25 | call to sourceDouble() | semmle.label | call to sourceDouble() | -| conversions.swift:129:12:129:27 | .significand | semmle.label | .significand | -| conversions.swift:135:12:135:25 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:136:12:136:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:136:19:136:32 | call to sourceString() | semmle.label | call to sourceString() | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | semmle.label | call to MyString.init(_:) | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) [some:0] | semmle.label | call to MyString.init(_:) [some:0] | -| conversions.swift:144:12:144:36 | ...! | semmle.label | ...! | -| conversions.swift:144:21:144:34 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:75:12:75:50 | call to Self.init(_:radix:) [some:0] | semmle.label | call to Self.init(_:radix:) [some:0] | +| conversions.swift:75:12:75:51 | ...! | semmle.label | ...! | +| conversions.swift:75:16:75:38 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | +| conversions.swift:77:30:77:49 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | +| conversions.swift:78:27:78:46 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:79:12:79:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:79:12:79:33 | .littleEndian | semmle.label | .littleEndian | +| conversions.swift:80:12:80:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:80:12:80:33 | .bigEndian | semmle.label | .bigEndian | +| conversions.swift:108:12:108:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:109:12:109:40 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:109:18:109:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:111:12:111:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:111:19:111:40 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:112:12:112:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:112:12:112:43 | .utf8 | semmle.label | .utf8 | +| conversions.swift:112:19:112:40 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:113:12:113:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:114:12:114:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:114:12:114:45 | .utf8 | semmle.label | .utf8 | +| conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:115:12:115:42 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:115:19:115:41 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:116:12:116:42 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:116:12:116:44 | .utf8 | semmle.label | .utf8 | +| conversions.swift:116:19:116:41 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:118:12:118:40 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:118:18:118:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:119:41:119:60 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:120:57:120:78 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | semmle.label | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:122:44:122:65 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:124:12:124:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:124:12:124:35 | .exponent | semmle.label | .exponent | +| conversions.swift:125:12:125:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:125:12:125:35 | .significand | semmle.label | .significand | +| conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:126:12:126:37 | .exponent | semmle.label | .exponent | +| conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:127:12:127:37 | .significand | semmle.label | .significand | +| conversions.swift:128:12:128:34 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:128:12:128:36 | .exponent | semmle.label | .exponent | +| conversions.swift:129:12:129:34 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:129:12:129:36 | .significand | semmle.label | .significand | +| conversions.swift:135:12:135:35 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:136:12:136:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:136:19:136:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) | semmle.label | call to MyString.init(_:) | +| conversions.swift:144:12:144:45 | call to MyString.init(_:) [some:0] | semmle.label | call to MyString.init(_:) [some:0] | +| conversions.swift:144:12:144:46 | ...! | semmle.label | ...! | +| conversions.swift:144:21:144:44 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | | conversions.swift:145:12:145:12 | ms2 | semmle.label | ms2 | | conversions.swift:146:12:146:16 | .description | semmle.label | .description | | conversions.swift:147:12:147:16 | .debugDescription | semmle.label | .debugDescription | -| conversions.swift:152:31:152:44 | call to sourceString() | semmle.label | call to sourceString() | +| conversions.swift:152:31:152:54 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | | conversions.swift:153:12:153:12 | parent | semmle.label | parent | | conversions.swift:154:12:154:12 | parent | semmle.label | parent | | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | semmle.label | call to unsafeDowncast(_:to:) | @@ -312,8 +312,8 @@ nodes | conversions.swift:157:12:157:12 | v3 | semmle.label | v3 | | conversions.swift:158:12:158:12 | v3 | semmle.label | v3 | | conversions.swift:171:14:171:33 | call to sourceArray(_:) | semmle.label | call to sourceArray(_:) | -| conversions.swift:172:14:172:26 | [...] [Collection element] | semmle.label | [...] [Collection element] | -| conversions.swift:172:15:172:25 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:172:14:172:33 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| conversions.swift:172:15:172:32 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:173:13:173:13 | arr1 | semmle.label | arr1 | | conversions.swift:174:13:174:13 | arr2 | semmle.label | arr2 | | conversions.swift:175:13:175:19 | ...[...] | semmle.label | ...[...] | @@ -361,15 +361,15 @@ nodes | conversions.swift:225:13:225:25 | .v | semmle.label | .v | | conversions.swift:226:10:226:10 | withMyValue [v] | semmle.label | withMyValue [v] | | conversions.swift:226:10:226:22 | .v | semmle.label | .v | -| conversions.swift:232:26:232:37 | call to sourceUInt() | semmle.label | call to sourceUInt() | -| conversions.swift:235:29:235:48 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | -| conversions.swift:235:37:235:47 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:238:12:238:50 | call to Int.init(withMyValue2:) | semmle.label | call to Int.init(withMyValue2:) | -| conversions.swift:238:30:238:49 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | -| conversions.swift:238:38:238:48 | call to sourceInt() | semmle.label | call to sourceInt() | -| conversions.swift:241:12:241:55 | call to mkInt(withMyValue:) | semmle.label | call to mkInt(withMyValue:) | -| conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | -| conversions.swift:241:43:241:53 | call to sourceInt() | semmle.label | call to sourceInt() | +| conversions.swift:232:26:232:43 | call to sourceUInt(_:) | semmle.label | call to sourceUInt(_:) | +| conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | +| conversions.swift:235:37:235:53 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | semmle.label | call to Int.init(withMyValue2:) | +| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | +| conversions.swift:238:38:238:54 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | semmle.label | call to mkInt(withMyValue:) | +| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | +| conversions.swift:241:43:241:59 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | file://:0:0:0:0 | .first | semmle.label | .first | | file://:0:0:0:0 | .second | semmle.label | .second | | file://:0:0:0:0 | .v | semmle.label | .v | @@ -500,11 +500,11 @@ subpaths | conversions.swift:219:11:219:11 | withMyValue2 [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:219:11:219:24 | .v | | conversions.swift:225:13:225:13 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:225:13:225:25 | .v | | conversions.swift:226:10:226:10 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:226:10:226:22 | .v | -| conversions.swift:235:37:235:47 | call to sourceInt() | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:235:29:235:48 | call to MyValue.init(_:) [v] | -| conversions.swift:238:30:238:49 | call to MyValue.init(_:) [v] | conversions.swift:217:7:217:21 | withMyValue2 [v] | conversions.swift:217:2:222:2 | self[return] | conversions.swift:238:12:238:50 | call to Int.init(withMyValue2:) | -| conversions.swift:238:38:238:48 | call to sourceInt() | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:238:30:238:49 | call to MyValue.init(_:) [v] | -| conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | conversions.swift:224:20:224:33 | withMyValue [v] | conversions.swift:226:10:226:22 | .v | conversions.swift:241:12:241:55 | call to mkInt(withMyValue:) | -| conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | +| conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | +| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | conversions.swift:217:7:217:21 | withMyValue2 [v] | conversions.swift:217:2:222:2 | self[return] | conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | +| conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | +| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | conversions.swift:224:20:224:33 | withMyValue [v] | conversions.swift:226:10:226:22 | .v | conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | +| conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | | stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | .first | stringinterpolation.swift:13:36:13:41 | .first | | stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:6:6:6:6 | value | stringinterpolation.swift:6:6:6:6 | self [Return] [first] | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | | stringinterpolation.swift:22:21:22:21 | p1 [first] | stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | .first | stringinterpolation.swift:22:21:22:24 | .first | @@ -513,71 +513,71 @@ subpaths | stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:7:6:7:6 | value | stringinterpolation.swift:7:6:7:6 | self [Return] [second] | stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | .second | stringinterpolation.swift:31:21:31:24 | .second | #select -| conversions.swift:32:12:32:22 | call to sourceInt() | conversions.swift:32:12:32:22 | call to sourceInt() | conversions.swift:32:12:32:22 | call to sourceInt() | result | -| conversions.swift:35:12:35:29 | call to Float.init(_:) | conversions.swift:35:18:35:28 | call to sourceInt() | conversions.swift:35:12:35:29 | call to Float.init(_:) | result | -| conversions.swift:36:12:36:30 | call to String.init(_:) | conversions.swift:36:19:36:29 | call to sourceInt() | conversions.swift:36:12:36:30 | call to String.init(_:) | result | -| conversions.swift:37:12:37:32 | .utf8 | conversions.swift:37:19:37:29 | call to sourceInt() | conversions.swift:37:12:37:32 | .utf8 | result | -| conversions.swift:40:12:40:12 | arr | conversions.swift:39:19:39:29 | call to sourceInt() | conversions.swift:40:12:40:12 | arr | result | -| conversions.swift:41:12:41:17 | ...[...] | conversions.swift:39:19:39:29 | call to sourceInt() | conversions.swift:41:12:41:17 | ...[...] | result | -| conversions.swift:42:12:42:23 | call to Array.init(_:) | conversions.swift:39:19:39:29 | call to sourceInt() | conversions.swift:42:12:42:23 | call to Array.init(_:) | result | -| conversions.swift:43:12:43:26 | ...[...] | conversions.swift:39:19:39:29 | call to sourceInt() | conversions.swift:43:12:43:26 | ...[...] | result | -| conversions.swift:44:12:44:39 | call to Array.init(_:) | conversions.swift:44:20:44:33 | call to sourceString() | conversions.swift:44:12:44:39 | call to Array.init(_:) | result | -| conversions.swift:45:12:45:42 | ...[...] | conversions.swift:45:20:45:33 | call to sourceString() | conversions.swift:45:12:45:42 | ...[...] | result | -| conversions.swift:48:13:48:13 | v | conversions.swift:47:13:47:23 | call to sourceInt() | conversions.swift:48:13:48:13 | v | result | -| conversions.swift:52:12:52:12 | v2 | conversions.swift:51:30:51:40 | call to sourceInt() | conversions.swift:52:12:52:12 | v2 | result | -| conversions.swift:55:12:55:12 | v4 | conversions.swift:54:31:54:41 | call to sourceInt() | conversions.swift:55:12:55:12 | v4 | result | -| conversions.swift:64:12:64:12 | v7 | conversions.swift:63:15:63:25 | call to sourceInt() | conversions.swift:64:12:64:12 | v7 | result | -| conversions.swift:75:12:75:42 | ...! | conversions.swift:75:16:75:29 | call to sourceString() | conversions.swift:75:12:75:42 | ...! | result | -| conversions.swift:77:12:77:41 | call to Self.init(littleEndian:) | conversions.swift:77:30:77:40 | call to sourceInt() | conversions.swift:77:12:77:41 | call to Self.init(littleEndian:) | result | -| conversions.swift:78:12:78:38 | call to Self.init(bigEndian:) | conversions.swift:78:27:78:37 | call to sourceInt() | conversions.swift:78:12:78:38 | call to Self.init(bigEndian:) | result | -| conversions.swift:79:12:79:24 | .littleEndian | conversions.swift:79:12:79:22 | call to sourceInt() | conversions.swift:79:12:79:24 | .littleEndian | result | -| conversions.swift:80:12:80:24 | .bigEndian | conversions.swift:80:12:80:22 | call to sourceInt() | conversions.swift:80:12:80:24 | .bigEndian | result | -| conversions.swift:108:12:108:24 | call to sourceFloat() | conversions.swift:108:12:108:24 | call to sourceFloat() | conversions.swift:108:12:108:24 | call to sourceFloat() | result | -| conversions.swift:109:12:109:31 | call to Float.init(_:) | conversions.swift:109:18:109:30 | call to sourceFloat() | conversions.swift:109:12:109:31 | call to Float.init(_:) | result | -| conversions.swift:111:12:111:32 | call to String.init(_:) | conversions.swift:111:19:111:31 | call to sourceFloat() | conversions.swift:111:12:111:32 | call to String.init(_:) | result | -| conversions.swift:112:12:112:34 | .utf8 | conversions.swift:112:19:112:31 | call to sourceFloat() | conversions.swift:112:12:112:34 | .utf8 | result | -| conversions.swift:113:12:113:34 | call to String.init(_:) | conversions.swift:113:19:113:33 | call to sourceFloat80() | conversions.swift:113:12:113:34 | call to String.init(_:) | result | -| conversions.swift:114:12:114:36 | .utf8 | conversions.swift:114:19:114:33 | call to sourceFloat80() | conversions.swift:114:12:114:36 | .utf8 | result | -| conversions.swift:115:12:115:33 | call to String.init(_:) | conversions.swift:115:19:115:32 | call to sourceDouble() | conversions.swift:115:12:115:33 | call to String.init(_:) | result | -| conversions.swift:116:12:116:35 | .utf8 | conversions.swift:116:19:116:32 | call to sourceDouble() | conversions.swift:116:12:116:35 | .utf8 | result | -| conversions.swift:118:12:118:31 | call to Float.init(_:) | conversions.swift:118:18:118:30 | call to sourceFloat() | conversions.swift:118:12:118:31 | call to Float.init(_:) | result | -| conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:119:41:119:51 | call to sourceInt() | conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | result | -| conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | conversions.swift:120:57:120:69 | call to sourceFloat() | conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | result | -| conversions.swift:122:12:122:57 | call to Float.init(signOf:magnitudeOf:) | conversions.swift:122:44:122:56 | call to sourceFloat() | conversions.swift:122:12:122:57 | call to Float.init(signOf:magnitudeOf:) | result | -| conversions.swift:124:12:124:26 | .exponent | conversions.swift:124:12:124:24 | call to sourceFloat() | conversions.swift:124:12:124:26 | .exponent | result | -| conversions.swift:125:12:125:26 | .significand | conversions.swift:125:12:125:24 | call to sourceFloat() | conversions.swift:125:12:125:26 | .significand | result | -| conversions.swift:126:12:126:28 | .exponent | conversions.swift:126:12:126:26 | call to sourceFloat80() | conversions.swift:126:12:126:28 | .exponent | result | -| conversions.swift:127:12:127:28 | .significand | conversions.swift:127:12:127:26 | call to sourceFloat80() | conversions.swift:127:12:127:28 | .significand | result | -| conversions.swift:128:12:128:27 | .exponent | conversions.swift:128:12:128:25 | call to sourceDouble() | conversions.swift:128:12:128:27 | .exponent | result | -| conversions.swift:129:12:129:27 | .significand | conversions.swift:129:12:129:25 | call to sourceDouble() | conversions.swift:129:12:129:27 | .significand | result | -| conversions.swift:135:12:135:25 | call to sourceString() | conversions.swift:135:12:135:25 | call to sourceString() | conversions.swift:135:12:135:25 | call to sourceString() | result | -| conversions.swift:136:12:136:33 | call to String.init(_:) | conversions.swift:136:19:136:32 | call to sourceString() | conversions.swift:136:12:136:33 | call to String.init(_:) | result | -| conversions.swift:145:12:145:12 | ms2 | conversions.swift:144:21:144:34 | call to sourceString() | conversions.swift:145:12:145:12 | ms2 | result | -| conversions.swift:146:12:146:16 | .description | conversions.swift:144:21:144:34 | call to sourceString() | conversions.swift:146:12:146:16 | .description | result | -| conversions.swift:147:12:147:16 | .debugDescription | conversions.swift:144:21:144:34 | call to sourceString() | conversions.swift:147:12:147:16 | .debugDescription | result | -| conversions.swift:153:12:153:12 | parent | conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:153:12:153:12 | parent | result | -| conversions.swift:154:12:154:12 | parent | conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:154:12:154:12 | parent | result | -| conversions.swift:157:12:157:12 | v3 | conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:157:12:157:12 | v3 | result | -| conversions.swift:158:12:158:12 | v3 | conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:158:12:158:12 | v3 | result | +| conversions.swift:32:12:32:31 | call to sourceInt(_:) | conversions.swift:32:12:32:31 | call to sourceInt(_:) | conversions.swift:32:12:32:31 | call to sourceInt(_:) | result | +| conversions.swift:35:12:35:38 | call to Float.init(_:) | conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Float.init(_:) | result | +| conversions.swift:36:12:36:39 | call to String.init(_:) | conversions.swift:36:19:36:38 | call to sourceInt(_:) | conversions.swift:36:12:36:39 | call to String.init(_:) | result | +| conversions.swift:37:12:37:41 | .utf8 | conversions.swift:37:19:37:38 | call to sourceInt(_:) | conversions.swift:37:12:37:41 | .utf8 | result | +| conversions.swift:40:12:40:12 | arr | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:40:12:40:12 | arr | result | +| conversions.swift:41:12:41:17 | ...[...] | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:41:12:41:17 | ...[...] | result | +| conversions.swift:42:12:42:23 | call to Array.init(_:) | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:42:12:42:23 | call to Array.init(_:) | result | +| conversions.swift:43:12:43:26 | ...[...] | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:43:12:43:26 | ...[...] | result | +| conversions.swift:44:12:44:48 | call to Array.init(_:) | conversions.swift:44:20:44:42 | call to sourceString(_:) | conversions.swift:44:12:44:48 | call to Array.init(_:) | result | +| conversions.swift:45:12:45:51 | ...[...] | conversions.swift:45:20:45:42 | call to sourceString(_:) | conversions.swift:45:12:45:51 | ...[...] | result | +| conversions.swift:48:13:48:13 | v | conversions.swift:47:13:47:32 | call to sourceInt(_:) | conversions.swift:48:13:48:13 | v | result | +| conversions.swift:52:12:52:12 | v2 | conversions.swift:51:30:51:49 | call to sourceInt(_:) | conversions.swift:52:12:52:12 | v2 | result | +| conversions.swift:55:12:55:12 | v4 | conversions.swift:54:31:54:50 | call to sourceInt(_:) | conversions.swift:55:12:55:12 | v4 | result | +| conversions.swift:64:12:64:12 | v7 | conversions.swift:63:15:63:34 | call to sourceInt(_:) | conversions.swift:64:12:64:12 | v7 | result | +| conversions.swift:75:12:75:51 | ...! | conversions.swift:75:16:75:38 | call to sourceString(_:) | conversions.swift:75:12:75:51 | ...! | result | +| conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | conversions.swift:77:30:77:49 | call to sourceInt(_:) | conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | result | +| conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | conversions.swift:78:27:78:46 | call to sourceInt(_:) | conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | result | +| conversions.swift:79:12:79:33 | .littleEndian | conversions.swift:79:12:79:31 | call to sourceInt(_:) | conversions.swift:79:12:79:33 | .littleEndian | result | +| conversions.swift:80:12:80:33 | .bigEndian | conversions.swift:80:12:80:31 | call to sourceInt(_:) | conversions.swift:80:12:80:33 | .bigEndian | result | +| conversions.swift:108:12:108:33 | call to sourceFloat(_:) | conversions.swift:108:12:108:33 | call to sourceFloat(_:) | conversions.swift:108:12:108:33 | call to sourceFloat(_:) | result | +| conversions.swift:109:12:109:40 | call to Float.init(_:) | conversions.swift:109:18:109:39 | call to sourceFloat(_:) | conversions.swift:109:12:109:40 | call to Float.init(_:) | result | +| conversions.swift:111:12:111:41 | call to String.init(_:) | conversions.swift:111:19:111:40 | call to sourceFloat(_:) | conversions.swift:111:12:111:41 | call to String.init(_:) | result | +| conversions.swift:112:12:112:43 | .utf8 | conversions.swift:112:19:112:40 | call to sourceFloat(_:) | conversions.swift:112:12:112:43 | .utf8 | result | +| conversions.swift:113:12:113:43 | call to String.init(_:) | conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | conversions.swift:113:12:113:43 | call to String.init(_:) | result | +| conversions.swift:114:12:114:45 | .utf8 | conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | conversions.swift:114:12:114:45 | .utf8 | result | +| conversions.swift:115:12:115:42 | call to String.init(_:) | conversions.swift:115:19:115:41 | call to sourceDouble(_:) | conversions.swift:115:12:115:42 | call to String.init(_:) | result | +| conversions.swift:116:12:116:44 | .utf8 | conversions.swift:116:19:116:41 | call to sourceDouble(_:) | conversions.swift:116:12:116:44 | .utf8 | result | +| conversions.swift:118:12:118:40 | call to Float.init(_:) | conversions.swift:118:18:118:39 | call to sourceFloat(_:) | conversions.swift:118:12:118:40 | call to Float.init(_:) | result | +| conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | conversions.swift:119:41:119:60 | call to sourceInt(_:) | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | conversions.swift:120:57:120:78 | call to sourceFloat(_:) | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | conversions.swift:122:44:122:65 | call to sourceFloat(_:) | conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | result | +| conversions.swift:124:12:124:35 | .exponent | conversions.swift:124:12:124:33 | call to sourceFloat(_:) | conversions.swift:124:12:124:35 | .exponent | result | +| conversions.swift:125:12:125:35 | .significand | conversions.swift:125:12:125:33 | call to sourceFloat(_:) | conversions.swift:125:12:125:35 | .significand | result | +| conversions.swift:126:12:126:37 | .exponent | conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | conversions.swift:126:12:126:37 | .exponent | result | +| conversions.swift:127:12:127:37 | .significand | conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | conversions.swift:127:12:127:37 | .significand | result | +| conversions.swift:128:12:128:36 | .exponent | conversions.swift:128:12:128:34 | call to sourceDouble(_:) | conversions.swift:128:12:128:36 | .exponent | result | +| conversions.swift:129:12:129:36 | .significand | conversions.swift:129:12:129:34 | call to sourceDouble(_:) | conversions.swift:129:12:129:36 | .significand | result | +| conversions.swift:135:12:135:35 | call to sourceString(_:) | conversions.swift:135:12:135:35 | call to sourceString(_:) | conversions.swift:135:12:135:35 | call to sourceString(_:) | result | +| conversions.swift:136:12:136:43 | call to String.init(_:) | conversions.swift:136:19:136:42 | call to sourceString(_:) | conversions.swift:136:12:136:43 | call to String.init(_:) | result | +| conversions.swift:145:12:145:12 | ms2 | conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:145:12:145:12 | ms2 | result | +| conversions.swift:146:12:146:16 | .description | conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:146:12:146:16 | .description | result | +| conversions.swift:147:12:147:16 | .debugDescription | conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:147:12:147:16 | .debugDescription | result | +| conversions.swift:153:12:153:12 | parent | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:153:12:153:12 | parent | result | +| conversions.swift:154:12:154:12 | parent | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:154:12:154:12 | parent | result | +| conversions.swift:157:12:157:12 | v3 | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:157:12:157:12 | v3 | result | +| conversions.swift:158:12:158:12 | v3 | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:158:12:158:12 | v3 | result | | conversions.swift:173:13:173:13 | arr1 | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:173:13:173:13 | arr1 | result | -| conversions.swift:174:13:174:13 | arr2 | conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:174:13:174:13 | arr2 | result | +| conversions.swift:174:13:174:13 | arr2 | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:174:13:174:13 | arr2 | result | | conversions.swift:175:13:175:19 | ...[...] | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:175:13:175:19 | ...[...] | result | -| conversions.swift:176:13:176:19 | ...[...] | conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:176:13:176:19 | ...[...] | result | +| conversions.swift:176:13:176:19 | ...[...] | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:176:13:176:19 | ...[...] | result | | conversions.swift:180:13:180:13 | arr1b | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:180:13:180:13 | arr1b | result | -| conversions.swift:181:13:181:13 | arr2b | conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:181:13:181:13 | arr2b | result | +| conversions.swift:181:13:181:13 | arr2b | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:181:13:181:13 | arr2b | result | | conversions.swift:182:13:182:20 | ...[...] | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:182:13:182:20 | ...[...] | result | -| conversions.swift:183:13:183:20 | ...[...] | conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:183:13:183:20 | ...[...] | result | +| conversions.swift:183:13:183:20 | ...[...] | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:183:13:183:20 | ...[...] | result | | conversions.swift:187:13:187:13 | arr1c | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:187:13:187:13 | arr1c | result | -| conversions.swift:188:13:188:13 | arr2c | conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:188:13:188:13 | arr2c | result | +| conversions.swift:188:13:188:13 | arr2c | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:188:13:188:13 | arr2c | result | | conversions.swift:189:13:189:20 | ...[...] | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:189:13:189:20 | ...[...] | result | -| conversions.swift:190:13:190:20 | ...[...] | conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:190:13:190:20 | ...[...] | result | -| conversions.swift:206:13:206:13 | withUInt | conversions.swift:232:26:232:37 | call to sourceUInt() | conversions.swift:206:13:206:13 | withUInt | result | -| conversions.swift:212:13:212:25 | .v | conversions.swift:235:37:235:47 | call to sourceInt() | conversions.swift:212:13:212:25 | .v | result | -| conversions.swift:218:13:218:26 | .v | conversions.swift:238:38:238:48 | call to sourceInt() | conversions.swift:218:13:218:26 | .v | result | -| conversions.swift:221:12:221:12 | self | conversions.swift:238:38:238:48 | call to sourceInt() | conversions.swift:221:12:221:12 | self | result | -| conversions.swift:225:13:225:25 | .v | conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:225:13:225:25 | .v | result | -| conversions.swift:238:12:238:50 | call to Int.init(withMyValue2:) | conversions.swift:238:38:238:48 | call to sourceInt() | conversions.swift:238:12:238:50 | call to Int.init(withMyValue2:) | result | -| conversions.swift:241:12:241:55 | call to mkInt(withMyValue:) | conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:241:12:241:55 | call to mkInt(withMyValue:) | result | +| conversions.swift:190:13:190:20 | ...[...] | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:190:13:190:20 | ...[...] | result | +| conversions.swift:206:13:206:13 | withUInt | conversions.swift:232:26:232:43 | call to sourceUInt(_:) | conversions.swift:206:13:206:13 | withUInt | result | +| conversions.swift:212:13:212:25 | .v | conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:212:13:212:25 | .v | result | +| conversions.swift:218:13:218:26 | .v | conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:218:13:218:26 | .v | result | +| conversions.swift:221:12:221:12 | self | conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:221:12:221:12 | self | result | +| conversions.swift:225:13:225:25 | .v | conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:225:13:225:25 | .v | result | +| conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | result | +| conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | result | | simple.swift:12:13:12:24 | ... .+(_:_:) ... | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | result | | simple.swift:13:13:13:24 | ... .+(_:_:) ... | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | result | | simple.swift:14:13:14:24 | ... .-(_:_:) ... | simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected index 2a6b89d244cb..0e6a9b75bcb5 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected @@ -1,17 +1,17 @@ testFailures -| conversions.swift:33:30:34:1 | // $ tainted=33\n | Missing result: tainted=33 | -| conversions.swift:34:32:35:1 | // $ tainted=34\n | Missing result: tainted=34 | -| conversions.swift:58:16:59:1 | // $ tainted=57\n | Missing result: tainted=57 | -| conversions.swift:61:16:62:1 | // $ tainted=60\n | Missing result: tainted=60 | -| conversions.swift:69:42:70:1 | // $ tainted=69\n | Missing result: tainted=69 | -| conversions.swift:71:40:72:1 | // $ tainted=71\n | Missing result: tainted=71 | -| conversions.swift:72:43:73:1 | // $ tainted=72\n | Missing result: tainted=72 | -| conversions.swift:73:40:74:1 | // $ tainted=73\n | Missing result: tainted=73 | -| conversions.swift:74:50:75:1 | // $ tainted=74\n | Missing result: tainted=74 | -| conversions.swift:110:34:111:1 | // $ tainted=110\n | Missing result: tainted=110 | -| conversions.swift:130:38:131:1 | // $ tainted=130\n | Missing result: tainted=130 | -| conversions.swift:131:40:132:1 | // $ tainted=131\n | Missing result: tainted=131 | -| conversions.swift:166:38:167:1 | // $ tainted=166\n | Missing result: tainted=166 | -| conversions.swift:208:18:209:1 | // $ tainted=232\n | Missing result: tainted=232 | -| conversions.swift:232:41:233:1 | // $ tainted=232\n | Missing result: tainted=232 | +| conversions.swift:33:39:34:1 | // $ tainted=conv1-2\n | Missing result: tainted=conv1-2 | +| conversions.swift:34:41:35:1 | // $ tainted=conv1-3\n | Missing result: tainted=conv1-3 | +| conversions.swift:58:16:59:1 | // $ tainted=conv3-4\n | Missing result: tainted=conv3-4 | +| conversions.swift:61:16:62:1 | // $ tainted=conv3-5\n | Missing result: tainted=conv3-5 | +| conversions.swift:69:51:70:1 | // $ tainted=conv3-7\n | Missing result: tainted=conv3-7 | +| conversions.swift:71:49:72:1 | // $ tainted=conv4-1\n | Missing result: tainted=conv4-1 | +| conversions.swift:72:52:73:1 | // $ tainted=conv4-2\n | Missing result: tainted=conv4-2 | +| conversions.swift:73:49:74:1 | // $ tainted=conv4-3\n | Missing result: tainted=conv4-3 | +| conversions.swift:74:59:75:1 | // $ tainted=conv4-4\n | Missing result: tainted=conv4-4 | +| conversions.swift:110:43:111:1 | // $ tainted=conv7-3\n | Missing result: tainted=conv7-3 | +| conversions.swift:130:47:131:1 | // $ tainted=conv9-7\n | Missing result: tainted=conv9-7 | +| conversions.swift:131:49:132:1 | // $ tainted=conv9-8\n | Missing result: tainted=conv9-8 | +| conversions.swift:166:45:167:1 | // $ tainted=cenum\n | Missing result: tainted=cenum | +| conversions.swift:208:18:209:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | +| conversions.swift:232:47:233:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | failures diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index dc4b59ef0624..910ee45a526c 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -1,11 +1,11 @@ -func sourceInt() -> Int { 0 } -func sourceUInt() -> UInt { 0 } -func sourceUInt64() -> UInt64 { 0 } -func sourceFloat() -> Float { 0.0 } -func sourceFloat80() -> Float80 { 0.0 } -func sourceDouble() -> Double { 0.0 } -func sourceString() -> String { "" } +func sourceInt(_ label: String) -> Int { 0 } +func sourceUInt(_ label: String) -> UInt { 0 } +func sourceUInt64(_ label: String) -> UInt64 { 0 } +func sourceFloat(_ label: String) -> Float { 0.0 } +func sourceFloat80(_ label: String) -> Float80 { 0.0 } +func sourceDouble(_ label: String) -> Double { 0.0 } +func sourceString(_ label: String) -> String { "" } func sourceArray(_ label: String) -> [Int] { [] } func sink(arg: Any) { } @@ -29,111 +29,111 @@ class MyString : LosslessStringConvertible, CustomStringConvertible, CustomDebug typealias MyInt = Int func testConversions() { - sink(arg: sourceInt()) // $ tainted=32 - sink(arg: Int(sourceInt())) // $ tainted=33 - sink(arg: UInt8(sourceInt())) // $ tainted=34 - sink(arg: Float(sourceInt())) // $ tainted=35 - sink(arg: String(sourceInt())) // $ tainted=36 - sink(arg: String(sourceInt()).utf8) // $ tainted=37 - - let arr = [1, 2, sourceInt()] - sink(arg: arr) // $ tainted=39 - sink(arg: arr[0]) // $ tainted=39 - sink(arg: [MyInt](arr)) // $ tainted=39 - sink(arg: [MyInt](arr)[0]) // $ tainted=39 - sink(arg: [UInt8](sourceString().utf8)) // $ tainted=44 - sink(arg: [UInt8](sourceString().utf8)[0]) // $ tainted=45 - - if let v = sourceInt() as? UInt { - sink(arg: v) // $ tainted=47 + sink(arg: sourceInt("conv1-1")) // $ tainted=conv1-1 + sink(arg: Int(sourceInt("conv1-2"))) // $ tainted=conv1-2 + sink(arg: UInt8(sourceInt("conv1-3"))) // $ tainted=conv1-3 + sink(arg: Float(sourceInt("conv1-4"))) // $ tainted=conv1-4 + sink(arg: String(sourceInt("conv1-5"))) // $ tainted=conv1-5 + sink(arg: String(sourceInt("conv1-6")).utf8) // $ tainted=conv1-6 + + let arr = [1, 2, sourceInt("conv2-1")] + sink(arg: arr) // $ tainted=conv2-1 + sink(arg: arr[0]) // $ tainted=conv2-1 + sink(arg: [MyInt](arr)) // $ tainted=conv2-1 + sink(arg: [MyInt](arr)[0]) // $ tainted=conv2-1 + sink(arg: [UInt8](sourceString("conv2-2").utf8)) // $ tainted=conv2-2 + sink(arg: [UInt8](sourceString("conv2-3").utf8)[0]) // $ tainted=conv2-3 + + if let v = sourceInt("conv3-1") as? UInt { + sink(arg: v) // $ tainted=conv3-1 } - let v2: UInt8 = numericCast(sourceInt()) - sink(arg: v2) // $ tainted=51 + let v2: UInt8 = numericCast(sourceInt("conv3-2")) + sink(arg: v2) // $ tainted=conv3-2 - let v4: UInt = unsafeBitCast(sourceInt(), to: UInt.self) - sink(arg: v4) // $ tainted=54 + let v4: UInt = unsafeBitCast(sourceInt("conv3-3"), to: UInt.self) + sink(arg: v4) // $ tainted=conv3-3 - let v5 = UInt(truncatingIfNeeded: sourceInt()) - sink(arg: v5) // $ tainted=57 + let v5 = UInt(truncatingIfNeeded: sourceInt("conv3-4")) + sink(arg: v5) // $ tainted=conv3-4 - let v6 = UInt(bitPattern: sourceInt()) - sink(arg: v6) // $ tainted=60 + let v6 = UInt(bitPattern: sourceInt("conv3-5")) + sink(arg: v6) // $ tainted=conv3-5 - let v7 = abs(sourceInt()) - sink(arg: v7) // $ tainted=63 + let v7 = abs(sourceInt("conv3-6")) + sink(arg: v7) // $ tainted=conv3-6 let v8 = UInt64(0) sink(arg: v8) sink(arg: v8.advanced(by: 1)) - sink(arg: v8.advanced(by: sourceInt())) // $ tainted=69 + sink(arg: v8.advanced(by: sourceInt("conv3-7"))) // $ tainted=conv3-7 - sink(arg: Int(exactly: sourceInt())!) // $ tainted=71 - sink(arg: UInt32(exactly: sourceInt())!) // $ tainted=72 - sink(arg: Int(clamping: sourceInt())) // $ tainted=73 - sink(arg: Int(truncatingIfNeeded: sourceInt())) // $ tainted=74 - sink(arg: Int(sourceString(), radix: 10)!) // $ tainted=75 + sink(arg: Int(exactly: sourceInt("conv4-1"))!) // $ tainted=conv4-1 + sink(arg: UInt32(exactly: sourceInt("conv4-2"))!) // $ tainted=conv4-2 + sink(arg: Int(clamping: sourceInt("conv4-3"))) // $ tainted=conv4-3 + sink(arg: Int(truncatingIfNeeded: sourceInt("conv4-4"))) // $ tainted=conv4-4 + sink(arg: Int(sourceString("conv4-5"), radix: 10)!) // $ tainted=conv4-5 - sink(arg: Int(littleEndian: sourceInt())) // $ tainted=77 - sink(arg: Int(bigEndian: sourceInt())) // $ tainted=78 - sink(arg: sourceInt().littleEndian) // $ tainted=79 - sink(arg: sourceInt().bigEndian) // $ tainted=80 + sink(arg: Int(littleEndian: sourceInt("conv5-1"))) // $ tainted=conv5-1 + sink(arg: Int(bigEndian: sourceInt("conv5-2"))) // $ tainted=conv5-2 + sink(arg: sourceInt("conv5-3").littleEndian) // $ tainted=conv5-3 + sink(arg: sourceInt("conv5-4").bigEndian) // $ tainted=conv5-4 let (q1, r1) = 1000.quotientAndRemainder(dividingBy: 2) sink(arg: q1) sink(arg: r1) - let (q2, r2) = sourceInt().quotientAndRemainder(dividingBy: 2) - sink(arg: q2) // $ MISSING: tainted=86 - sink(arg: r2) // $ MISSING: tainted=86 + let (q2, r2) = sourceInt("conv6-1").quotientAndRemainder(dividingBy: 2) + sink(arg: q2) // $ MISSING: tainted=conv6-1 + sink(arg: r2) // $ MISSING: tainted=conv6-1 - let (q3, r3) = 1000.quotientAndRemainder(dividingBy: sourceInt()) - sink(arg: q3) // $ MISSING: tainted=90 - sink(arg: r3) // $ MISSING: tainted=90 + let (q3, r3) = 1000.quotientAndRemainder(dividingBy: sourceInt("conv6-2")) + sink(arg: q3) // $ MISSING: tainted=conv6-2 + sink(arg: r3) // $ MISSING: tainted=conv6-2 let pair1 = 1000.addingReportingOverflow(2) sink(arg: pair1.0) // part sink(arg: pair1.1) // overflow - let pair2 = sourceInt().addingReportingOverflow(2) - sink(arg: pair2.0) // $ MISSING: tainted=98 + let pair2 = sourceInt("conv6-3").addingReportingOverflow(2) + sink(arg: pair2.0) // $ MISSING: tainted=conv6-3 sink(arg: pair2.1) - let pair3 = 1000.addingReportingOverflow(sourceInt()) - sink(arg: pair3.0) // $ MISSING: tainted=102 + let pair3 = 1000.addingReportingOverflow(sourceInt("conv6-4")) + sink(arg: pair3.0) // $ MISSING: tainted=conv6-4 sink(arg: pair3.1) // --- - sink(arg: sourceFloat()) // $ tainted=108 - sink(arg: Float(sourceFloat())) // $ tainted=109 - sink(arg: UInt8(sourceFloat())) // $ tainted=110 - sink(arg: String(sourceFloat())) // $ tainted=111 - sink(arg: String(sourceFloat()).utf8) // $ tainted=112 - sink(arg: String(sourceFloat80())) // $ tainted=113 - sink(arg: String(sourceFloat80()).utf8) // $ tainted=114 - sink(arg: String(sourceDouble())) // $ tainted=115 - sink(arg: String(sourceDouble()).utf8) // $ tainted=116 - - sink(arg: Float(sourceFloat())) // $ tainted=118 - sink(arg: Float(sign: .plus, exponent: sourceInt(), significand: 0.0)) // $ tainted=119 - sink(arg: Float(sign: .plus, exponent: 0, significand: sourceFloat())) // $ tainted=120 - sink(arg: Float(signOf: sourceFloat(), magnitudeOf: 0.0)) // (good) - sink(arg: Float(signOf: 0.0, magnitudeOf: sourceFloat())) // $ tainted=122 - - sink(arg: sourceFloat().exponent) // $ tainted=124 - sink(arg: sourceFloat().significand) // $ tainted=125 - sink(arg: sourceFloat80().exponent) // $ tainted=126 - sink(arg: sourceFloat80().significand) // $ tainted=127 - sink(arg: sourceDouble().exponent) // $ tainted=128 - sink(arg: sourceDouble().significand) // $ tainted=129 - sink(arg: sourceUInt().byteSwapped) // $ tainted=130 - sink(arg: sourceUInt64().byteSwapped) // $ tainted=131 + sink(arg: sourceFloat("conv7-1")) // $ tainted=conv7-1 + sink(arg: Float(sourceFloat("conv7-2"))) // $ tainted=conv7-2 + sink(arg: UInt8(sourceFloat("conv7-3"))) // $ tainted=conv7-3 + sink(arg: String(sourceFloat("conv7-4"))) // $ tainted=conv7-4 + sink(arg: String(sourceFloat("conv7-5")).utf8) // $ tainted=conv7-5 + sink(arg: String(sourceFloat80("conv7-6"))) // $ tainted=conv7-6 + sink(arg: String(sourceFloat80("conv7-7")).utf8) // $ tainted=conv7-7 + sink(arg: String(sourceDouble("conv7-8"))) // $ tainted=conv7-8 + sink(arg: String(sourceDouble("conv7-9")).utf8) // $ tainted=conv7-9 + + sink(arg: Float(sourceFloat("conv8-1"))) // $ tainted=conv8-1 + sink(arg: Float(sign: .plus, exponent: sourceInt("conv8-2"), significand: 0.0)) // $ tainted=conv8-2 + sink(arg: Float(sign: .plus, exponent: 0, significand: sourceFloat("conv8-3"))) // $ tainted=conv8-3 + sink(arg: Float(signOf: sourceFloat("conv8-4"), magnitudeOf: 0.0)) // (good) + sink(arg: Float(signOf: 0.0, magnitudeOf: sourceFloat("conv8-5"))) // $ tainted=conv8-5 + + sink(arg: sourceFloat("conv9-1").exponent) // $ tainted=conv9-1 + sink(arg: sourceFloat("conv9-2").significand) // $ tainted=conv9-2 + sink(arg: sourceFloat80("conv9-3").exponent) // $ tainted=conv9-3 + sink(arg: sourceFloat80("conv9-4").significand) // $ tainted=conv9-4 + sink(arg: sourceDouble("conv9-5").exponent) // $ tainted=conv9-5 + sink(arg: sourceDouble("conv9-6").significand) // $ tainted=conv9-6 + sink(arg: sourceUInt("conv9-7").byteSwapped) // $ tainted=conv9-7 + sink(arg: sourceUInt64("conv9-8").byteSwapped) // $ tainted=conv9-8 // --- - sink(arg: sourceString()) // $ tainted=135 - sink(arg: String(sourceString())) // $ tainted=136 + sink(arg: sourceString("conv10-1")) // $ tainted=conv10-1 + sink(arg: String(sourceString("conv10-2"))) // $ tainted=conv10-2 let ms1 = MyString("abc")! sink(arg: ms1) @@ -141,21 +141,21 @@ func testConversions() { sink(arg: ms1.debugDescription) sink(arg: ms1.clean) - let ms2 = MyString(sourceString())! - sink(arg: ms2) // $ tainted=144 - sink(arg: ms2.description) // $ tainted=144 - sink(arg: ms2.debugDescription) // $ tainted=144 + let ms2 = MyString(sourceString("conv11-1"))! + sink(arg: ms2) // $ tainted=conv11-1 + sink(arg: ms2.description) // $ tainted=conv11-1 + sink(arg: ms2.debugDescription) // $ tainted=conv11-1 sink(arg: ms2.clean) // --- - let parent : MyParentClass = sourceString() as! MyChildClass - sink(arg: parent) // $ tainted=152 - sink(arg: parent as! MyChildClass) // $ tainted=152 + let parent : MyParentClass = sourceString("conv12-1") as! MyChildClass + sink(arg: parent) // $ tainted=conv12-1 + sink(arg: parent as! MyChildClass) // $ tainted=conv12-1 let v3: MyChildClass = unsafeDowncast(parent, to: MyChildClass.self) - sink(arg: v3) // $ tainted=152 - sink(arg: v3 as! MyParentClass) // $ tainted=152 + sink(arg: v3) // $ tainted=conv12-1 + sink(arg: v3 as! MyParentClass) // $ tainted=conv12-1 } var myCEnumConst : Int = 0 @@ -163,31 +163,31 @@ typealias MyCEnumType = UInt32 func testCEnum() { sink(arg: MyCEnumType(myCEnumConst)) - sink(arg: MyCEnumType(sourceInt())) // $ tainted=166 + sink(arg: MyCEnumType(sourceInt("cenum"))) // $ tainted=cenum } class TestArrayConversion { init() { let arr1 = sourceArray("init1") - let arr2 = [sourceInt()] + let arr2 = [sourceInt("init2")] sink(arg: arr1) // $ tainted=init1 - sink(arg: arr2) // $ tainted=172 + sink(arg: arr2) // $ tainted=init2 sink(arg: arr1[0]) // $ tainted=init1 - sink(arg: arr2[0]) // $ tainted=172 + sink(arg: arr2[0]) // $ tainted=init2 let arr1b = try Array(arr1) let arr2b = try Array(arr2) sink(arg: arr1b) // $ tainted=init1 - sink(arg: arr2b) // $ tainted=172 + sink(arg: arr2b) // $ tainted=init2 sink(arg: arr1b[0]) // $ tainted=init1 - sink(arg: arr2b[0]) // $ tainted=172 + sink(arg: arr2b[0]) // $ tainted=init2 let arr1c = ContiguousArray(arr1) let arr2c = ContiguousArray(arr2) sink(arg: arr1c) // $ tainted=init1 - sink(arg: arr2c) // $ tainted=172 + sink(arg: arr2c) // $ tainted=init2 sink(arg: arr1c[0]) // $ tainted=init1 - sink(arg: arr2c[0]) // $ tainted=172 + sink(arg: arr2c[0]) // $ tainted=init2 } } @@ -203,40 +203,40 @@ class MyValue { extension Int { init(withUInt: UInt) { - sink(arg: withUInt) // $ tainted=232 + sink(arg: withUInt) // $ tainted=ext1 self = Int(withUInt) - sink(arg:self) // $ tainted=232 + sink(arg:self) // $ tainted=ext1 } init(withMyValue: MyValue) { - sink(arg: withMyValue.v) // $ tainted=235 + sink(arg: withMyValue.v) // $ tainted=ext2 self = withMyValue.v - sink(arg:self) // $ MISSING: tainted=235 + sink(arg:self) // $ MISSING: tainted=ext2 } init(withMyValue2: MyValue) { - sink(arg: withMyValue2.v) // $ tainted=238 + sink(arg: withMyValue2.v) // $ tainted=ext3 let x = withMyValue2.v self = x - sink(arg:self) // $ tainted=238 + sink(arg:self) // $ tainted=ext3 } static func mkInt(withMyValue: MyValue) -> Int { - sink(arg: withMyValue.v) // $ tainted=241 + sink(arg: withMyValue.v) // $ tainted=ext4 return withMyValue.v } } func testIntExtensions() { sink(arg: Int(withUInt: 0)) - sink(arg: Int(withUInt: sourceUInt())) // $ tainted=232 + sink(arg: Int(withUInt: sourceUInt("ext1"))) // $ tainted=ext1 sink(arg: Int(withMyValue: MyValue(0))) - sink(arg: Int(withMyValue: MyValue(sourceInt()))) // $ MISSING: tainted=235 + sink(arg: Int(withMyValue: MyValue(sourceInt("ext2")))) // $ MISSING: tainted=ext2 sink(arg: Int(withMyValue2: MyValue(0))) - sink(arg: Int(withMyValue2: MyValue(sourceInt()))) // $ tainted=238 + sink(arg: Int(withMyValue2: MyValue(sourceInt("ext3")))) // $ tainted=ext3 sink(arg: Int.mkInt(withMyValue: MyValue(0))) - sink(arg: Int.mkInt(withMyValue: MyValue(sourceInt()))) // $ tainted=241 + sink(arg: Int.mkInt(withMyValue: MyValue(sourceInt("ext4")))) // $ tainted=ext4 } From 570393fe2bd6426d435dfaf32f60d39f185bc365 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 14 Nov 2024 16:21:14 +0000 Subject: [PATCH 2/7] Swift: Additional test cases. --- .../dataflow/taint/core/LocalTaint.expected | 494 ++++++------ .../dataflow/taint/core/Taint.expected | 748 +++++++++--------- .../dataflow/taint/core/TaintInline.expected | 41 +- .../dataflow/taint/core/conversions.swift | 56 +- 4 files changed, 714 insertions(+), 625 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index c0a08c715a89..a25101527f56 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -17,243 +17,263 @@ | conversions.swift:25:33:25:33 | self | conversions.swift:25:33:25:33 | SSA def(self) | | conversions.swift:26:22:26:22 | SSA def(self) | conversions.swift:26:22:26:38 | self[return] | | conversions.swift:26:22:26:22 | self | conversions.swift:26:22:26:22 | SSA def(self) | -| conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Float.init(_:) | -| conversions.swift:36:19:36:38 | call to sourceInt(_:) | conversions.swift:36:12:36:39 | call to String.init(_:) | -| conversions.swift:37:12:37:39 | call to String.init(_:) | conversions.swift:37:12:37:41 | .utf8 | -| conversions.swift:37:19:37:38 | call to sourceInt(_:) | conversions.swift:37:12:37:39 | call to String.init(_:) | -| conversions.swift:39:6:39:6 | SSA def(arr) | conversions.swift:40:12:40:12 | arr | -| conversions.swift:39:6:39:6 | arr | conversions.swift:39:6:39:6 | SSA def(arr) | -| conversions.swift:39:12:39:39 | [...] | conversions.swift:39:6:39:6 | arr | -| conversions.swift:40:12:40:12 | arr | conversions.swift:41:12:41:12 | arr | -| conversions.swift:41:12:41:12 | [post] arr | conversions.swift:42:20:42:20 | arr | -| conversions.swift:41:12:41:12 | arr | conversions.swift:41:12:41:17 | ...[...] | -| conversions.swift:41:12:41:12 | arr | conversions.swift:42:20:42:20 | arr | -| conversions.swift:42:20:42:20 | arr | conversions.swift:43:20:43:20 | arr | -| conversions.swift:43:12:43:23 | call to Array.init(_:) | conversions.swift:43:12:43:26 | ...[...] | -| conversions.swift:44:20:44:42 | call to sourceString(_:) | conversions.swift:44:20:44:44 | .utf8 | -| conversions.swift:45:12:45:48 | call to Array.init(_:) | conversions.swift:45:12:45:51 | ...[...] | -| conversions.swift:45:20:45:42 | call to sourceString(_:) | conversions.swift:45:20:45:44 | .utf8 | -| conversions.swift:47:5:47:9 | let ...? | conversions.swift:47:9:47:9 | v | -| conversions.swift:47:9:47:9 | SSA def(v) | conversions.swift:48:13:48:13 | v | -| conversions.swift:47:9:47:9 | v | conversions.swift:47:9:47:9 | SSA def(v) | -| conversions.swift:47:13:47:32 | call to sourceInt(_:) | conversions.swift:47:5:47:9 | let ...? | -| conversions.swift:51:6:51:6 | SSA def(v2) | conversions.swift:52:12:52:12 | v2 | -| conversions.swift:51:6:51:6 | v2 | conversions.swift:51:6:51:6 | SSA def(v2) | -| conversions.swift:51:6:51:10 | ... as ... | conversions.swift:51:6:51:6 | v2 | -| conversions.swift:51:18:51:50 | call to numericCast(_:) | conversions.swift:51:6:51:10 | ... as ... | -| conversions.swift:51:30:51:49 | call to sourceInt(_:) | conversions.swift:51:18:51:50 | call to numericCast(_:) | -| conversions.swift:54:6:54:6 | SSA def(v4) | conversions.swift:55:12:55:12 | v4 | -| conversions.swift:54:6:54:6 | v4 | conversions.swift:54:6:54:6 | SSA def(v4) | -| conversions.swift:54:6:54:10 | ... as ... | conversions.swift:54:6:54:6 | v4 | -| conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | conversions.swift:54:6:54:10 | ... as ... | -| conversions.swift:54:31:54:50 | call to sourceInt(_:) | conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | -| conversions.swift:57:6:57:6 | SSA def(v5) | conversions.swift:58:12:58:12 | v5 | -| conversions.swift:57:6:57:6 | v5 | conversions.swift:57:6:57:6 | SSA def(v5) | -| conversions.swift:57:11:57:56 | call to Self.init(truncatingIfNeeded:) | conversions.swift:57:6:57:6 | v5 | -| conversions.swift:60:6:60:6 | SSA def(v6) | conversions.swift:61:12:61:12 | v6 | -| conversions.swift:60:6:60:6 | v6 | conversions.swift:60:6:60:6 | SSA def(v6) | -| conversions.swift:60:11:60:48 | call to UInt.init(bitPattern:) | conversions.swift:60:6:60:6 | v6 | -| conversions.swift:63:6:63:6 | SSA def(v7) | conversions.swift:64:12:64:12 | v7 | -| conversions.swift:63:6:63:6 | v7 | conversions.swift:63:6:63:6 | SSA def(v7) | -| conversions.swift:63:11:63:35 | call to abs(_:) | conversions.swift:63:6:63:6 | v7 | -| conversions.swift:63:15:63:34 | call to sourceInt(_:) | conversions.swift:63:11:63:35 | call to abs(_:) | -| conversions.swift:66:6:66:6 | SSA def(v8) | conversions.swift:67:12:67:12 | v8 | -| conversions.swift:66:6:66:6 | v8 | conversions.swift:66:6:66:6 | SSA def(v8) | -| conversions.swift:66:18:66:18 | 0 | conversions.swift:66:6:66:6 | v8 | -| conversions.swift:67:12:67:12 | [post] v8 | conversions.swift:68:12:68:12 | v8 | -| conversions.swift:67:12:67:12 | v8 | conversions.swift:68:12:68:12 | v8 | -| conversions.swift:68:12:68:12 | [post] v8 | conversions.swift:69:12:69:12 | v8 | -| conversions.swift:68:12:68:12 | v8 | conversions.swift:69:12:69:12 | v8 | -| conversions.swift:71:12:71:45 | call to Self.init(exactly:) | conversions.swift:71:12:71:46 | ...! | -| conversions.swift:72:12:72:48 | call to Self.init(exactly:) | conversions.swift:72:12:72:49 | ...! | -| conversions.swift:75:12:75:50 | call to Self.init(_:radix:) | conversions.swift:75:12:75:51 | ...! | -| conversions.swift:77:30:77:49 | call to sourceInt(_:) | conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | -| conversions.swift:78:27:78:46 | call to sourceInt(_:) | conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | -| conversions.swift:79:12:79:31 | call to sourceInt(_:) | conversions.swift:79:12:79:33 | .littleEndian | -| conversions.swift:80:12:80:31 | call to sourceInt(_:) | conversions.swift:80:12:80:33 | .bigEndian | -| conversions.swift:82:7:82:7 | SSA def(q1) | conversions.swift:83:12:83:12 | q1 | -| conversions.swift:82:7:82:7 | q1 | conversions.swift:82:7:82:7 | SSA def(q1) | -| conversions.swift:82:11:82:11 | SSA def(r1) | conversions.swift:84:12:84:12 | r1 | -| conversions.swift:82:11:82:11 | r1 | conversions.swift:82:11:82:11 | SSA def(r1) | -| conversions.swift:82:17:82:56 | call to quotientAndRemainder(dividingBy:) | conversions.swift:82:6:82:13 | (...) | -| conversions.swift:86:7:86:7 | SSA def(q2) | conversions.swift:87:12:87:12 | q2 | -| conversions.swift:86:7:86:7 | q2 | conversions.swift:86:7:86:7 | SSA def(q2) | -| conversions.swift:86:11:86:11 | SSA def(r2) | conversions.swift:88:12:88:12 | r2 | -| conversions.swift:86:11:86:11 | r2 | conversions.swift:86:11:86:11 | SSA def(r2) | -| conversions.swift:86:17:86:72 | call to quotientAndRemainder(dividingBy:) | conversions.swift:86:6:86:13 | (...) | -| conversions.swift:90:7:90:7 | SSA def(q3) | conversions.swift:91:12:91:12 | q3 | -| conversions.swift:90:7:90:7 | q3 | conversions.swift:90:7:90:7 | SSA def(q3) | -| conversions.swift:90:11:90:11 | SSA def(r3) | conversions.swift:92:12:92:12 | r3 | -| conversions.swift:90:11:90:11 | r3 | conversions.swift:90:11:90:11 | SSA def(r3) | -| conversions.swift:90:17:90:75 | call to quotientAndRemainder(dividingBy:) | conversions.swift:90:6:90:13 | (...) | -| conversions.swift:94:6:94:6 | SSA def(pair1) | conversions.swift:95:12:95:12 | pair1 | -| conversions.swift:94:6:94:6 | pair1 | conversions.swift:94:6:94:6 | SSA def(pair1) | -| conversions.swift:94:14:94:44 | call to addingReportingOverflow(_:) | conversions.swift:94:6:94:6 | pair1 | -| conversions.swift:95:12:95:12 | [post] pair1 | conversions.swift:96:12:96:12 | pair1 | -| conversions.swift:95:12:95:12 | pair1 | conversions.swift:96:12:96:12 | pair1 | -| conversions.swift:98:6:98:6 | SSA def(pair2) | conversions.swift:99:12:99:12 | pair2 | -| conversions.swift:98:6:98:6 | pair2 | conversions.swift:98:6:98:6 | SSA def(pair2) | -| conversions.swift:98:14:98:60 | call to addingReportingOverflow(_:) | conversions.swift:98:6:98:6 | pair2 | -| conversions.swift:99:12:99:12 | [post] pair2 | conversions.swift:100:12:100:12 | pair2 | -| conversions.swift:99:12:99:12 | pair2 | conversions.swift:100:12:100:12 | pair2 | -| conversions.swift:102:6:102:6 | SSA def(pair3) | conversions.swift:103:12:103:12 | pair3 | -| conversions.swift:102:6:102:6 | pair3 | conversions.swift:102:6:102:6 | SSA def(pair3) | -| conversions.swift:102:14:102:63 | call to addingReportingOverflow(_:) | conversions.swift:102:6:102:6 | pair3 | -| conversions.swift:103:12:103:12 | [post] pair3 | conversions.swift:104:12:104:12 | pair3 | -| conversions.swift:103:12:103:12 | pair3 | conversions.swift:104:12:104:12 | pair3 | -| conversions.swift:109:18:109:39 | call to sourceFloat(_:) | conversions.swift:109:12:109:40 | call to Float.init(_:) | -| conversions.swift:111:19:111:40 | call to sourceFloat(_:) | conversions.swift:111:12:111:41 | call to String.init(_:) | -| conversions.swift:112:12:112:41 | call to String.init(_:) | conversions.swift:112:12:112:43 | .utf8 | -| conversions.swift:112:19:112:40 | call to sourceFloat(_:) | conversions.swift:112:12:112:41 | call to String.init(_:) | -| conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | conversions.swift:113:12:113:43 | call to String.init(_:) | -| conversions.swift:114:12:114:43 | call to String.init(_:) | conversions.swift:114:12:114:45 | .utf8 | -| conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | conversions.swift:114:12:114:43 | call to String.init(_:) | -| conversions.swift:115:19:115:41 | call to sourceDouble(_:) | conversions.swift:115:12:115:42 | call to String.init(_:) | -| conversions.swift:116:12:116:42 | call to String.init(_:) | conversions.swift:116:12:116:44 | .utf8 | -| conversions.swift:116:19:116:41 | call to sourceDouble(_:) | conversions.swift:116:12:116:42 | call to String.init(_:) | -| conversions.swift:118:18:118:39 | call to sourceFloat(_:) | conversions.swift:118:12:118:40 | call to Float.init(_:) | -| conversions.swift:119:41:119:60 | call to sourceInt(_:) | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:119:76:119:76 | 0.0 | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:120:41:120:41 | 0 | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:120:57:120:78 | call to sourceFloat(_:) | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:121:63:121:63 | 0.0 | conversions.swift:121:12:121:66 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:122:44:122:65 | call to sourceFloat(_:) | conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:124:12:124:33 | call to sourceFloat(_:) | conversions.swift:124:12:124:35 | .exponent | -| conversions.swift:125:12:125:33 | call to sourceFloat(_:) | conversions.swift:125:12:125:35 | .significand | -| conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | conversions.swift:126:12:126:37 | .exponent | -| conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | conversions.swift:127:12:127:37 | .significand | -| conversions.swift:128:12:128:34 | call to sourceDouble(_:) | conversions.swift:128:12:128:36 | .exponent | -| conversions.swift:129:12:129:34 | call to sourceDouble(_:) | conversions.swift:129:12:129:36 | .significand | -| conversions.swift:136:19:136:42 | call to sourceString(_:) | conversions.swift:136:12:136:43 | call to String.init(_:) | -| conversions.swift:138:6:138:6 | SSA def(ms1) | conversions.swift:139:12:139:12 | ms1 | -| conversions.swift:138:6:138:6 | ms1 | conversions.swift:138:6:138:6 | SSA def(ms1) | -| conversions.swift:138:12:138:26 | call to MyString.init(_:) | conversions.swift:138:12:138:27 | ...! | -| conversions.swift:138:12:138:27 | ...! | conversions.swift:138:6:138:6 | ms1 | -| conversions.swift:138:21:138:21 | abc | conversions.swift:138:12:138:26 | call to MyString.init(_:) | -| conversions.swift:139:12:139:12 | [post] ms1 | conversions.swift:140:12:140:12 | ms1 | -| conversions.swift:139:12:139:12 | ms1 | conversions.swift:140:12:140:12 | ms1 | -| conversions.swift:140:12:140:12 | [post] ms1 | conversions.swift:141:12:141:12 | ms1 | -| conversions.swift:140:12:140:12 | ms1 | conversions.swift:140:12:140:16 | .description | -| conversions.swift:140:12:140:12 | ms1 | conversions.swift:141:12:141:12 | ms1 | -| conversions.swift:141:12:141:12 | [post] ms1 | conversions.swift:142:12:142:12 | ms1 | -| conversions.swift:141:12:141:12 | ms1 | conversions.swift:141:12:141:16 | .debugDescription | -| conversions.swift:141:12:141:12 | ms1 | conversions.swift:142:12:142:12 | ms1 | -| conversions.swift:144:6:144:6 | SSA def(ms2) | conversions.swift:145:12:145:12 | ms2 | -| conversions.swift:144:6:144:6 | ms2 | conversions.swift:144:6:144:6 | SSA def(ms2) | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:144:12:144:46 | ...! | -| conversions.swift:144:12:144:46 | ...! | conversions.swift:144:6:144:6 | ms2 | -| conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:144:12:144:45 | call to MyString.init(_:) | -| conversions.swift:145:12:145:12 | [post] ms2 | conversions.swift:146:12:146:12 | ms2 | -| conversions.swift:145:12:145:12 | ms2 | conversions.swift:146:12:146:12 | ms2 | -| conversions.swift:146:12:146:12 | [post] ms2 | conversions.swift:147:12:147:12 | ms2 | -| conversions.swift:146:12:146:12 | ms2 | conversions.swift:146:12:146:16 | .description | -| conversions.swift:146:12:146:12 | ms2 | conversions.swift:147:12:147:12 | ms2 | -| conversions.swift:147:12:147:12 | [post] ms2 | conversions.swift:148:12:148:12 | ms2 | -| conversions.swift:147:12:147:12 | ms2 | conversions.swift:147:12:147:16 | .debugDescription | -| conversions.swift:147:12:147:12 | ms2 | conversions.swift:148:12:148:12 | ms2 | -| conversions.swift:152:6:152:6 | SSA def(parent) | conversions.swift:153:12:153:12 | parent | -| conversions.swift:152:6:152:6 | parent | conversions.swift:152:6:152:6 | SSA def(parent) | -| conversions.swift:152:6:152:15 | ... as ... | conversions.swift:152:6:152:6 | parent | -| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:152:6:152:15 | ... as ... | -| conversions.swift:153:12:153:12 | [post] parent | conversions.swift:154:12:154:12 | parent | -| conversions.swift:153:12:153:12 | parent | conversions.swift:154:12:154:12 | parent | -| conversions.swift:154:12:154:12 | [post] parent | conversions.swift:156:40:156:40 | parent | -| conversions.swift:154:12:154:12 | parent | conversions.swift:156:40:156:40 | parent | -| conversions.swift:156:6:156:6 | SSA def(v3) | conversions.swift:157:12:157:12 | v3 | -| conversions.swift:156:6:156:6 | v3 | conversions.swift:156:6:156:6 | SSA def(v3) | -| conversions.swift:156:6:156:10 | ... as ... | conversions.swift:156:6:156:6 | v3 | -| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:156:6:156:10 | ... as ... | -| conversions.swift:156:40:156:40 | parent | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | -| conversions.swift:157:12:157:12 | [post] v3 | conversions.swift:158:12:158:12 | v3 | -| conversions.swift:157:12:157:12 | v3 | conversions.swift:158:12:158:12 | v3 | -| conversions.swift:169:7:169:7 | SSA def(self) | conversions.swift:169:7:169:7 | self[return] | -| conversions.swift:169:7:169:7 | self | conversions.swift:169:7:169:7 | SSA def(self) | -| conversions.swift:170:2:170:2 | SSA def(self) | conversions.swift:170:2:191:2 | self[return] | -| conversions.swift:170:2:170:2 | self | conversions.swift:170:2:170:2 | SSA def(self) | -| conversions.swift:171:7:171:7 | SSA def(arr1) | conversions.swift:173:13:173:13 | arr1 | -| conversions.swift:171:7:171:7 | arr1 | conversions.swift:171:7:171:7 | SSA def(arr1) | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:171:7:171:7 | arr1 | -| conversions.swift:172:7:172:7 | SSA def(arr2) | conversions.swift:174:13:174:13 | arr2 | -| conversions.swift:172:7:172:7 | arr2 | conversions.swift:172:7:172:7 | SSA def(arr2) | -| conversions.swift:172:14:172:33 | [...] | conversions.swift:172:7:172:7 | arr2 | -| conversions.swift:173:13:173:13 | arr1 | conversions.swift:175:13:175:13 | arr1 | -| conversions.swift:174:13:174:13 | arr2 | conversions.swift:176:13:176:13 | arr2 | -| conversions.swift:175:13:175:13 | [post] arr1 | conversions.swift:178:25:178:25 | arr1 | -| conversions.swift:175:13:175:13 | arr1 | conversions.swift:175:13:175:19 | ...[...] | -| conversions.swift:175:13:175:13 | arr1 | conversions.swift:178:25:178:25 | arr1 | -| conversions.swift:176:13:176:13 | [post] arr2 | conversions.swift:179:25:179:25 | arr2 | -| conversions.swift:176:13:176:13 | arr2 | conversions.swift:176:13:176:19 | ...[...] | -| conversions.swift:176:13:176:13 | arr2 | conversions.swift:179:25:179:25 | arr2 | -| conversions.swift:178:7:178:7 | SSA def(arr1b) | conversions.swift:180:13:180:13 | arr1b | -| conversions.swift:178:7:178:7 | arr1b | conversions.swift:178:7:178:7 | SSA def(arr1b) | -| conversions.swift:178:15:178:29 | try ... | conversions.swift:178:7:178:7 | arr1b | -| conversions.swift:178:19:178:29 | call to Array.init(_:) | conversions.swift:178:15:178:29 | try ... | -| conversions.swift:178:25:178:25 | arr1 | conversions.swift:185:31:185:31 | arr1 | -| conversions.swift:179:7:179:7 | SSA def(arr2b) | conversions.swift:181:13:181:13 | arr2b | -| conversions.swift:179:7:179:7 | arr2b | conversions.swift:179:7:179:7 | SSA def(arr2b) | -| conversions.swift:179:15:179:29 | try ... | conversions.swift:179:7:179:7 | arr2b | -| conversions.swift:179:19:179:29 | call to Array.init(_:) | conversions.swift:179:15:179:29 | try ... | -| conversions.swift:179:25:179:25 | arr2 | conversions.swift:186:31:186:31 | arr2 | -| conversions.swift:180:13:180:13 | arr1b | conversions.swift:182:13:182:13 | arr1b | -| conversions.swift:181:13:181:13 | arr2b | conversions.swift:183:13:183:13 | arr2b | -| conversions.swift:182:13:182:13 | arr1b | conversions.swift:182:13:182:20 | ...[...] | -| conversions.swift:183:13:183:13 | arr2b | conversions.swift:183:13:183:20 | ...[...] | -| conversions.swift:185:7:185:7 | SSA def(arr1c) | conversions.swift:187:13:187:13 | arr1c | -| conversions.swift:185:7:185:7 | arr1c | conversions.swift:185:7:185:7 | SSA def(arr1c) | -| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) | conversions.swift:185:7:185:7 | arr1c | -| conversions.swift:186:7:186:7 | SSA def(arr2c) | conversions.swift:188:13:188:13 | arr2c | -| conversions.swift:186:7:186:7 | arr2c | conversions.swift:186:7:186:7 | SSA def(arr2c) | -| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) | conversions.swift:186:7:186:7 | arr2c | -| conversions.swift:187:13:187:13 | [post] arr1c | conversions.swift:189:13:189:13 | arr1c | -| conversions.swift:187:13:187:13 | arr1c | conversions.swift:189:13:189:13 | arr1c | -| conversions.swift:188:13:188:13 | [post] arr2c | conversions.swift:190:13:190:13 | arr2c | -| conversions.swift:188:13:188:13 | arr2c | conversions.swift:190:13:190:13 | arr2c | -| conversions.swift:189:13:189:13 | arr1c | conversions.swift:189:13:189:20 | ...[...] | -| conversions.swift:190:13:190:13 | arr2c | conversions.swift:190:13:190:20 | ...[...] | -| conversions.swift:196:7:196:7 | SSA def(self) | conversions.swift:196:7:196:7 | self[return] | -| conversions.swift:196:7:196:7 | self | conversions.swift:196:7:196:7 | SSA def(self) | -| conversions.swift:197:6:197:6 | self | conversions.swift:197:6:197:6 | SSA def(self) | -| conversions.swift:197:6:197:6 | self | conversions.swift:197:6:197:6 | SSA def(self) | -| conversions.swift:197:6:197:6 | self | conversions.swift:197:6:197:6 | SSA def(self) | -| conversions.swift:197:6:197:6 | value | conversions.swift:197:6:197:6 | SSA def(value) | -| conversions.swift:199:2:199:2 | SSA def(self) | conversions.swift:200:3:200:3 | self | -| conversions.swift:199:2:199:2 | self | conversions.swift:199:2:199:2 | SSA def(self) | -| conversions.swift:199:7:199:12 | SSA def(v) | conversions.swift:200:12:200:12 | v | -| conversions.swift:199:7:199:12 | v | conversions.swift:199:7:199:12 | SSA def(v) | -| conversions.swift:200:3:200:3 | [post] self | conversions.swift:199:2:201:2 | self[return] | -| conversions.swift:200:3:200:3 | self | conversions.swift:199:2:201:2 | self[return] | -| conversions.swift:205:7:205:17 | SSA def(withUInt) | conversions.swift:206:13:206:13 | withUInt | -| conversions.swift:205:7:205:17 | withUInt | conversions.swift:205:7:205:17 | SSA def(withUInt) | -| conversions.swift:206:13:206:13 | [post] withUInt | conversions.swift:207:14:207:14 | withUInt | -| conversions.swift:206:13:206:13 | withUInt | conversions.swift:207:14:207:14 | withUInt | -| conversions.swift:207:3:207:22 | SSA def(self) | conversions.swift:208:12:208:12 | self | -| conversions.swift:207:10:207:22 | call to Self.init(_:) | conversions.swift:207:3:207:22 | SSA def(self) | -| conversions.swift:208:12:208:12 | [post] self | conversions.swift:205:2:209:2 | self[return] | -| conversions.swift:208:12:208:12 | self | conversions.swift:205:2:209:2 | self[return] | -| conversions.swift:211:7:211:20 | SSA def(withMyValue) | conversions.swift:212:13:212:13 | withMyValue | -| conversions.swift:211:7:211:20 | withMyValue | conversions.swift:211:7:211:20 | SSA def(withMyValue) | -| conversions.swift:212:13:212:13 | [post] withMyValue | conversions.swift:213:10:213:10 | withMyValue | -| conversions.swift:212:13:212:13 | withMyValue | conversions.swift:213:10:213:10 | withMyValue | -| conversions.swift:213:3:213:22 | SSA def(self) | conversions.swift:214:12:214:12 | self | -| conversions.swift:214:12:214:12 | [post] self | conversions.swift:211:2:215:2 | self[return] | -| conversions.swift:214:12:214:12 | self | conversions.swift:211:2:215:2 | self[return] | -| conversions.swift:217:7:217:21 | SSA def(withMyValue2) | conversions.swift:218:13:218:13 | withMyValue2 | -| conversions.swift:217:7:217:21 | withMyValue2 | conversions.swift:217:7:217:21 | SSA def(withMyValue2) | -| conversions.swift:218:13:218:13 | [post] withMyValue2 | conversions.swift:219:11:219:11 | withMyValue2 | -| conversions.swift:218:13:218:13 | withMyValue2 | conversions.swift:219:11:219:11 | withMyValue2 | -| conversions.swift:219:7:219:7 | SSA def(x) | conversions.swift:220:10:220:10 | x | -| conversions.swift:219:7:219:7 | x | conversions.swift:219:7:219:7 | SSA def(x) | -| conversions.swift:219:11:219:24 | .v | conversions.swift:219:7:219:7 | x | -| conversions.swift:220:3:220:10 | SSA def(self) | conversions.swift:221:12:221:12 | self | -| conversions.swift:220:10:220:10 | x | conversions.swift:220:3:220:10 | SSA def(self) | -| conversions.swift:221:12:221:12 | [post] self | conversions.swift:217:2:222:2 | self[return] | -| conversions.swift:221:12:221:12 | self | conversions.swift:217:2:222:2 | self[return] | -| conversions.swift:224:14:224:14 | SSA def(self) | conversions.swift:224:2:227:2 | self[return] | -| conversions.swift:224:14:224:14 | self | conversions.swift:224:14:224:14 | SSA def(self) | -| conversions.swift:224:20:224:33 | SSA def(withMyValue) | conversions.swift:225:13:225:13 | withMyValue | -| conversions.swift:224:20:224:33 | withMyValue | conversions.swift:224:20:224:33 | SSA def(withMyValue) | -| conversions.swift:225:13:225:13 | [post] withMyValue | conversions.swift:226:10:226:10 | withMyValue | -| conversions.swift:225:13:225:13 | withMyValue | conversions.swift:226:10:226:10 | withMyValue | +| conversions.swift:45:18:45:38 | call to sourceInt(_:) | conversions.swift:45:12:45:39 | call to Float.init(_:) | +| conversions.swift:46:19:46:39 | call to sourceInt(_:) | conversions.swift:46:12:46:40 | call to Double.init(_:) | +| conversions.swift:47:19:47:39 | call to sourceInt(_:) | conversions.swift:47:12:47:40 | call to String.init(_:) | +| conversions.swift:48:12:48:40 | call to String.init(_:) | conversions.swift:48:12:48:42 | .utf8 | +| conversions.swift:48:19:48:39 | call to sourceInt(_:) | conversions.swift:48:12:48:40 | call to String.init(_:) | +| conversions.swift:50:6:50:6 | SSA def(arr) | conversions.swift:51:12:51:12 | arr | +| conversions.swift:50:6:50:6 | arr | conversions.swift:50:6:50:6 | SSA def(arr) | +| conversions.swift:50:12:50:39 | [...] | conversions.swift:50:6:50:6 | arr | +| conversions.swift:51:12:51:12 | arr | conversions.swift:52:12:52:12 | arr | +| conversions.swift:52:12:52:12 | [post] arr | conversions.swift:53:20:53:20 | arr | +| conversions.swift:52:12:52:12 | arr | conversions.swift:52:12:52:17 | ...[...] | +| conversions.swift:52:12:52:12 | arr | conversions.swift:53:20:53:20 | arr | +| conversions.swift:53:20:53:20 | arr | conversions.swift:54:20:54:20 | arr | +| conversions.swift:54:12:54:23 | call to Array.init(_:) | conversions.swift:54:12:54:26 | ...[...] | +| conversions.swift:55:20:55:42 | call to sourceString(_:) | conversions.swift:55:20:55:44 | .utf8 | +| conversions.swift:56:12:56:48 | call to Array.init(_:) | conversions.swift:56:12:56:51 | ...[...] | +| conversions.swift:56:20:56:42 | call to sourceString(_:) | conversions.swift:56:20:56:44 | .utf8 | +| conversions.swift:58:5:58:9 | let ...? | conversions.swift:58:9:58:9 | v | +| conversions.swift:58:9:58:9 | SSA def(v) | conversions.swift:59:13:59:13 | v | +| conversions.swift:58:9:58:9 | v | conversions.swift:58:9:58:9 | SSA def(v) | +| conversions.swift:58:13:58:32 | call to sourceInt(_:) | conversions.swift:58:5:58:9 | let ...? | +| conversions.swift:62:6:62:6 | SSA def(v2) | conversions.swift:63:12:63:12 | v2 | +| conversions.swift:62:6:62:6 | v2 | conversions.swift:62:6:62:6 | SSA def(v2) | +| conversions.swift:62:6:62:10 | ... as ... | conversions.swift:62:6:62:6 | v2 | +| conversions.swift:62:18:62:50 | call to numericCast(_:) | conversions.swift:62:6:62:10 | ... as ... | +| conversions.swift:62:30:62:49 | call to sourceInt(_:) | conversions.swift:62:18:62:50 | call to numericCast(_:) | +| conversions.swift:65:6:65:6 | SSA def(v4) | conversions.swift:66:12:66:12 | v4 | +| conversions.swift:65:6:65:6 | v4 | conversions.swift:65:6:65:6 | SSA def(v4) | +| conversions.swift:65:6:65:10 | ... as ... | conversions.swift:65:6:65:6 | v4 | +| conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | conversions.swift:65:6:65:10 | ... as ... | +| conversions.swift:65:31:65:50 | call to sourceInt(_:) | conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | +| conversions.swift:68:6:68:6 | SSA def(v5) | conversions.swift:69:12:69:12 | v5 | +| conversions.swift:68:6:68:6 | v5 | conversions.swift:68:6:68:6 | SSA def(v5) | +| conversions.swift:68:11:68:56 | call to Self.init(truncatingIfNeeded:) | conversions.swift:68:6:68:6 | v5 | +| conversions.swift:71:6:71:6 | SSA def(v6) | conversions.swift:72:12:72:12 | v6 | +| conversions.swift:71:6:71:6 | v6 | conversions.swift:71:6:71:6 | SSA def(v6) | +| conversions.swift:71:11:71:48 | call to UInt.init(bitPattern:) | conversions.swift:71:6:71:6 | v6 | +| conversions.swift:74:6:74:6 | SSA def(v7) | conversions.swift:75:12:75:12 | v7 | +| conversions.swift:74:6:74:6 | v7 | conversions.swift:74:6:74:6 | SSA def(v7) | +| conversions.swift:74:11:74:35 | call to abs(_:) | conversions.swift:74:6:74:6 | v7 | +| conversions.swift:74:15:74:34 | call to sourceInt(_:) | conversions.swift:74:11:74:35 | call to abs(_:) | +| conversions.swift:77:6:77:6 | SSA def(v8) | conversions.swift:78:12:78:12 | v8 | +| conversions.swift:77:6:77:6 | v8 | conversions.swift:77:6:77:6 | SSA def(v8) | +| conversions.swift:77:18:77:18 | 0 | conversions.swift:77:6:77:6 | v8 | +| conversions.swift:78:12:78:12 | [post] v8 | conversions.swift:79:12:79:12 | v8 | +| conversions.swift:78:12:78:12 | v8 | conversions.swift:79:12:79:12 | v8 | +| conversions.swift:79:12:79:12 | [post] v8 | conversions.swift:80:12:80:12 | v8 | +| conversions.swift:79:12:79:12 | v8 | conversions.swift:80:12:80:12 | v8 | +| conversions.swift:80:12:80:12 | [post] v8 | conversions.swift:81:12:81:12 | v8 | +| conversions.swift:80:12:80:12 | v8 | conversions.swift:81:12:81:12 | v8 | +| conversions.swift:81:12:81:12 | [post] v8 | conversions.swift:82:12:82:12 | v8 | +| conversions.swift:81:12:81:12 | v8 | conversions.swift:82:12:82:12 | v8 | +| conversions.swift:84:12:84:45 | call to Self.init(exactly:) | conversions.swift:84:12:84:46 | ...! | +| conversions.swift:85:12:85:48 | call to Self.init(exactly:) | conversions.swift:85:12:85:49 | ...! | +| conversions.swift:90:12:90:50 | call to Self.init(_:radix:) | conversions.swift:90:12:90:51 | ...! | +| conversions.swift:91:12:91:53 | call to Self.init(_:radix:) | conversions.swift:91:12:91:54 | ...! | +| conversions.swift:93:30:93:49 | call to sourceInt(_:) | conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | +| conversions.swift:94:33:94:55 | call to sourceUInt64(_:) | conversions.swift:94:12:94:56 | call to Self.init(littleEndian:) | +| conversions.swift:95:27:95:46 | call to sourceInt(_:) | conversions.swift:95:12:95:47 | call to Self.init(bigEndian:) | +| conversions.swift:96:30:96:52 | call to sourceUInt64(_:) | conversions.swift:96:12:96:53 | call to Self.init(bigEndian:) | +| conversions.swift:97:12:97:31 | call to sourceInt(_:) | conversions.swift:97:12:97:33 | .littleEndian | +| conversions.swift:98:12:98:34 | call to sourceUInt64(_:) | conversions.swift:98:12:98:36 | .littleEndian | +| conversions.swift:99:12:99:31 | call to sourceInt(_:) | conversions.swift:99:12:99:33 | .bigEndian | +| conversions.swift:100:12:100:34 | call to sourceUInt64(_:) | conversions.swift:100:12:100:36 | .bigEndian | +| conversions.swift:102:7:102:7 | SSA def(q1) | conversions.swift:103:12:103:12 | q1 | +| conversions.swift:102:7:102:7 | q1 | conversions.swift:102:7:102:7 | SSA def(q1) | +| conversions.swift:102:11:102:11 | SSA def(r1) | conversions.swift:104:12:104:12 | r1 | +| conversions.swift:102:11:102:11 | r1 | conversions.swift:102:11:102:11 | SSA def(r1) | +| conversions.swift:102:17:102:56 | call to quotientAndRemainder(dividingBy:) | conversions.swift:102:6:102:13 | (...) | +| conversions.swift:106:7:106:7 | SSA def(q2) | conversions.swift:107:12:107:12 | q2 | +| conversions.swift:106:7:106:7 | q2 | conversions.swift:106:7:106:7 | SSA def(q2) | +| conversions.swift:106:11:106:11 | SSA def(r2) | conversions.swift:108:12:108:12 | r2 | +| conversions.swift:106:11:106:11 | r2 | conversions.swift:106:11:106:11 | SSA def(r2) | +| conversions.swift:106:17:106:72 | call to quotientAndRemainder(dividingBy:) | conversions.swift:106:6:106:13 | (...) | +| conversions.swift:110:7:110:7 | SSA def(q3) | conversions.swift:111:12:111:12 | q3 | +| conversions.swift:110:7:110:7 | q3 | conversions.swift:110:7:110:7 | SSA def(q3) | +| conversions.swift:110:11:110:11 | SSA def(r3) | conversions.swift:112:12:112:12 | r3 | +| conversions.swift:110:11:110:11 | r3 | conversions.swift:110:11:110:11 | SSA def(r3) | +| conversions.swift:110:17:110:75 | call to quotientAndRemainder(dividingBy:) | conversions.swift:110:6:110:13 | (...) | +| conversions.swift:114:7:114:7 | SSA def(q4) | conversions.swift:115:12:115:12 | q4 | +| conversions.swift:114:7:114:7 | q4 | conversions.swift:114:7:114:7 | SSA def(q4) | +| conversions.swift:114:11:114:11 | SSA def(r4) | conversions.swift:116:12:116:12 | r4 | +| conversions.swift:114:11:114:11 | r4 | conversions.swift:114:11:114:11 | SSA def(r4) | +| conversions.swift:114:17:114:86 | call to quotientAndRemainder(dividingBy:) | conversions.swift:114:6:114:13 | (...) | +| conversions.swift:118:6:118:6 | SSA def(pair1) | conversions.swift:119:12:119:12 | pair1 | +| conversions.swift:118:6:118:6 | pair1 | conversions.swift:118:6:118:6 | SSA def(pair1) | +| conversions.swift:118:14:118:44 | call to addingReportingOverflow(_:) | conversions.swift:118:6:118:6 | pair1 | +| conversions.swift:119:12:119:12 | [post] pair1 | conversions.swift:120:12:120:12 | pair1 | +| conversions.swift:119:12:119:12 | pair1 | conversions.swift:120:12:120:12 | pair1 | +| conversions.swift:122:6:122:6 | SSA def(pair2) | conversions.swift:123:12:123:12 | pair2 | +| conversions.swift:122:6:122:6 | pair2 | conversions.swift:122:6:122:6 | SSA def(pair2) | +| conversions.swift:122:14:122:60 | call to addingReportingOverflow(_:) | conversions.swift:122:6:122:6 | pair2 | +| conversions.swift:123:12:123:12 | [post] pair2 | conversions.swift:124:12:124:12 | pair2 | +| conversions.swift:123:12:123:12 | pair2 | conversions.swift:124:12:124:12 | pair2 | +| conversions.swift:126:6:126:6 | SSA def(pair3) | conversions.swift:127:12:127:12 | pair3 | +| conversions.swift:126:6:126:6 | pair3 | conversions.swift:126:6:126:6 | SSA def(pair3) | +| conversions.swift:126:14:126:63 | call to addingReportingOverflow(_:) | conversions.swift:126:6:126:6 | pair3 | +| conversions.swift:127:12:127:12 | [post] pair3 | conversions.swift:128:12:128:12 | pair3 | +| conversions.swift:127:12:127:12 | pair3 | conversions.swift:128:12:128:12 | pair3 | +| conversions.swift:130:6:130:6 | SSA def(pair4) | conversions.swift:131:12:131:12 | pair4 | +| conversions.swift:130:6:130:6 | pair4 | conversions.swift:130:6:130:6 | SSA def(pair4) | +| conversions.swift:130:14:130:74 | call to addingReportingOverflow(_:) | conversions.swift:130:6:130:6 | pair4 | +| conversions.swift:131:12:131:12 | [post] pair4 | conversions.swift:132:12:132:12 | pair4 | +| conversions.swift:131:12:131:12 | pair4 | conversions.swift:132:12:132:12 | pair4 | +| conversions.swift:137:18:137:39 | call to sourceFloat(_:) | conversions.swift:137:12:137:40 | call to Float.init(_:) | +| conversions.swift:139:19:139:40 | call to sourceFloat(_:) | conversions.swift:139:12:139:41 | call to String.init(_:) | +| conversions.swift:140:12:140:41 | call to String.init(_:) | conversions.swift:140:12:140:43 | .utf8 | +| conversions.swift:140:19:140:40 | call to sourceFloat(_:) | conversions.swift:140:12:140:41 | call to String.init(_:) | +| conversions.swift:141:19:141:42 | call to sourceFloat80(_:) | conversions.swift:141:12:141:43 | call to String.init(_:) | +| conversions.swift:142:12:142:43 | call to String.init(_:) | conversions.swift:142:12:142:45 | .utf8 | +| conversions.swift:142:19:142:42 | call to sourceFloat80(_:) | conversions.swift:142:12:142:43 | call to String.init(_:) | +| conversions.swift:143:19:143:41 | call to sourceDouble(_:) | conversions.swift:143:12:143:42 | call to String.init(_:) | +| conversions.swift:144:12:144:42 | call to String.init(_:) | conversions.swift:144:12:144:44 | .utf8 | +| conversions.swift:144:19:144:41 | call to sourceDouble(_:) | conversions.swift:144:12:144:42 | call to String.init(_:) | +| conversions.swift:146:18:146:39 | call to sourceFloat(_:) | conversions.swift:146:12:146:40 | call to Float.init(_:) | +| conversions.swift:147:41:147:60 | call to sourceInt(_:) | conversions.swift:147:12:147:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:147:76:147:76 | 0.0 | conversions.swift:147:12:147:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:148:41:148:41 | 0 | conversions.swift:148:12:148:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:148:57:148:78 | call to sourceFloat(_:) | conversions.swift:148:12:148:79 | call to Float.init(sign:exponent:significand:) | +| conversions.swift:149:63:149:63 | 0.0 | conversions.swift:149:12:149:66 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:150:44:150:65 | call to sourceFloat(_:) | conversions.swift:150:12:150:66 | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:152:12:152:33 | call to sourceFloat(_:) | conversions.swift:152:12:152:35 | .exponent | +| conversions.swift:153:12:153:33 | call to sourceFloat(_:) | conversions.swift:153:12:153:35 | .significand | +| conversions.swift:154:12:154:35 | call to sourceFloat80(_:) | conversions.swift:154:12:154:37 | .exponent | +| conversions.swift:155:12:155:35 | call to sourceFloat80(_:) | conversions.swift:155:12:155:37 | .significand | +| conversions.swift:156:12:156:34 | call to sourceDouble(_:) | conversions.swift:156:12:156:36 | .exponent | +| conversions.swift:157:12:157:34 | call to sourceDouble(_:) | conversions.swift:157:12:157:36 | .significand | +| conversions.swift:166:19:166:42 | call to sourceString(_:) | conversions.swift:166:12:166:43 | call to String.init(_:) | +| conversions.swift:168:6:168:6 | SSA def(ms1) | conversions.swift:169:12:169:12 | ms1 | +| conversions.swift:168:6:168:6 | ms1 | conversions.swift:168:6:168:6 | SSA def(ms1) | +| conversions.swift:168:12:168:26 | call to MyString.init(_:) | conversions.swift:168:12:168:27 | ...! | +| conversions.swift:168:12:168:27 | ...! | conversions.swift:168:6:168:6 | ms1 | +| conversions.swift:168:21:168:21 | abc | conversions.swift:168:12:168:26 | call to MyString.init(_:) | +| conversions.swift:169:12:169:12 | [post] ms1 | conversions.swift:170:12:170:12 | ms1 | +| conversions.swift:169:12:169:12 | ms1 | conversions.swift:170:12:170:12 | ms1 | +| conversions.swift:170:12:170:12 | [post] ms1 | conversions.swift:171:12:171:12 | ms1 | +| conversions.swift:170:12:170:12 | ms1 | conversions.swift:170:12:170:16 | .description | +| conversions.swift:170:12:170:12 | ms1 | conversions.swift:171:12:171:12 | ms1 | +| conversions.swift:171:12:171:12 | [post] ms1 | conversions.swift:172:12:172:12 | ms1 | +| conversions.swift:171:12:171:12 | ms1 | conversions.swift:171:12:171:16 | .debugDescription | +| conversions.swift:171:12:171:12 | ms1 | conversions.swift:172:12:172:12 | ms1 | +| conversions.swift:174:6:174:6 | SSA def(ms2) | conversions.swift:175:12:175:12 | ms2 | +| conversions.swift:174:6:174:6 | ms2 | conversions.swift:174:6:174:6 | SSA def(ms2) | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) | conversions.swift:174:12:174:46 | ...! | +| conversions.swift:174:12:174:46 | ...! | conversions.swift:174:6:174:6 | ms2 | +| conversions.swift:174:21:174:44 | call to sourceString(_:) | conversions.swift:174:12:174:45 | call to MyString.init(_:) | +| conversions.swift:175:12:175:12 | [post] ms2 | conversions.swift:176:12:176:12 | ms2 | +| conversions.swift:175:12:175:12 | ms2 | conversions.swift:176:12:176:12 | ms2 | +| conversions.swift:176:12:176:12 | [post] ms2 | conversions.swift:177:12:177:12 | ms2 | +| conversions.swift:176:12:176:12 | ms2 | conversions.swift:176:12:176:16 | .description | +| conversions.swift:176:12:176:12 | ms2 | conversions.swift:177:12:177:12 | ms2 | +| conversions.swift:177:12:177:12 | [post] ms2 | conversions.swift:178:12:178:12 | ms2 | +| conversions.swift:177:12:177:12 | ms2 | conversions.swift:177:12:177:16 | .debugDescription | +| conversions.swift:177:12:177:12 | ms2 | conversions.swift:178:12:178:12 | ms2 | +| conversions.swift:182:6:182:6 | SSA def(parent) | conversions.swift:183:12:183:12 | parent | +| conversions.swift:182:6:182:6 | parent | conversions.swift:182:6:182:6 | SSA def(parent) | +| conversions.swift:182:6:182:15 | ... as ... | conversions.swift:182:6:182:6 | parent | +| conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:182:6:182:15 | ... as ... | +| conversions.swift:183:12:183:12 | [post] parent | conversions.swift:184:12:184:12 | parent | +| conversions.swift:183:12:183:12 | parent | conversions.swift:184:12:184:12 | parent | +| conversions.swift:184:12:184:12 | [post] parent | conversions.swift:186:40:186:40 | parent | +| conversions.swift:184:12:184:12 | parent | conversions.swift:186:40:186:40 | parent | +| conversions.swift:186:6:186:6 | SSA def(v3) | conversions.swift:187:12:187:12 | v3 | +| conversions.swift:186:6:186:6 | v3 | conversions.swift:186:6:186:6 | SSA def(v3) | +| conversions.swift:186:6:186:10 | ... as ... | conversions.swift:186:6:186:6 | v3 | +| conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | conversions.swift:186:6:186:10 | ... as ... | +| conversions.swift:186:40:186:40 | parent | conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | +| conversions.swift:187:12:187:12 | [post] v3 | conversions.swift:188:12:188:12 | v3 | +| conversions.swift:187:12:187:12 | v3 | conversions.swift:188:12:188:12 | v3 | +| conversions.swift:199:7:199:7 | SSA def(self) | conversions.swift:199:7:199:7 | self[return] | +| conversions.swift:199:7:199:7 | self | conversions.swift:199:7:199:7 | SSA def(self) | +| conversions.swift:200:2:200:2 | SSA def(self) | conversions.swift:200:2:221:2 | self[return] | +| conversions.swift:200:2:200:2 | self | conversions.swift:200:2:200:2 | SSA def(self) | +| conversions.swift:201:7:201:7 | SSA def(arr1) | conversions.swift:203:13:203:13 | arr1 | +| conversions.swift:201:7:201:7 | arr1 | conversions.swift:201:7:201:7 | SSA def(arr1) | +| conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:201:7:201:7 | arr1 | +| conversions.swift:202:7:202:7 | SSA def(arr2) | conversions.swift:204:13:204:13 | arr2 | +| conversions.swift:202:7:202:7 | arr2 | conversions.swift:202:7:202:7 | SSA def(arr2) | +| conversions.swift:202:14:202:33 | [...] | conversions.swift:202:7:202:7 | arr2 | +| conversions.swift:203:13:203:13 | arr1 | conversions.swift:205:13:205:13 | arr1 | +| conversions.swift:204:13:204:13 | arr2 | conversions.swift:206:13:206:13 | arr2 | +| conversions.swift:205:13:205:13 | [post] arr1 | conversions.swift:208:25:208:25 | arr1 | +| conversions.swift:205:13:205:13 | arr1 | conversions.swift:205:13:205:19 | ...[...] | +| conversions.swift:205:13:205:13 | arr1 | conversions.swift:208:25:208:25 | arr1 | +| conversions.swift:206:13:206:13 | [post] arr2 | conversions.swift:209:25:209:25 | arr2 | +| conversions.swift:206:13:206:13 | arr2 | conversions.swift:206:13:206:19 | ...[...] | +| conversions.swift:206:13:206:13 | arr2 | conversions.swift:209:25:209:25 | arr2 | +| conversions.swift:208:7:208:7 | SSA def(arr1b) | conversions.swift:210:13:210:13 | arr1b | +| conversions.swift:208:7:208:7 | arr1b | conversions.swift:208:7:208:7 | SSA def(arr1b) | +| conversions.swift:208:15:208:29 | try ... | conversions.swift:208:7:208:7 | arr1b | +| conversions.swift:208:19:208:29 | call to Array.init(_:) | conversions.swift:208:15:208:29 | try ... | +| conversions.swift:208:25:208:25 | arr1 | conversions.swift:215:31:215:31 | arr1 | +| conversions.swift:209:7:209:7 | SSA def(arr2b) | conversions.swift:211:13:211:13 | arr2b | +| conversions.swift:209:7:209:7 | arr2b | conversions.swift:209:7:209:7 | SSA def(arr2b) | +| conversions.swift:209:15:209:29 | try ... | conversions.swift:209:7:209:7 | arr2b | +| conversions.swift:209:19:209:29 | call to Array.init(_:) | conversions.swift:209:15:209:29 | try ... | +| conversions.swift:209:25:209:25 | arr2 | conversions.swift:216:31:216:31 | arr2 | +| conversions.swift:210:13:210:13 | arr1b | conversions.swift:212:13:212:13 | arr1b | +| conversions.swift:211:13:211:13 | arr2b | conversions.swift:213:13:213:13 | arr2b | +| conversions.swift:212:13:212:13 | arr1b | conversions.swift:212:13:212:20 | ...[...] | +| conversions.swift:213:13:213:13 | arr2b | conversions.swift:213:13:213:20 | ...[...] | +| conversions.swift:215:7:215:7 | SSA def(arr1c) | conversions.swift:217:13:217:13 | arr1c | +| conversions.swift:215:7:215:7 | arr1c | conversions.swift:215:7:215:7 | SSA def(arr1c) | +| conversions.swift:215:15:215:35 | call to ContiguousArray.init(_:) | conversions.swift:215:7:215:7 | arr1c | +| conversions.swift:216:7:216:7 | SSA def(arr2c) | conversions.swift:218:13:218:13 | arr2c | +| conversions.swift:216:7:216:7 | arr2c | conversions.swift:216:7:216:7 | SSA def(arr2c) | +| conversions.swift:216:15:216:35 | call to ContiguousArray.init(_:) | conversions.swift:216:7:216:7 | arr2c | +| conversions.swift:217:13:217:13 | [post] arr1c | conversions.swift:219:13:219:13 | arr1c | +| conversions.swift:217:13:217:13 | arr1c | conversions.swift:219:13:219:13 | arr1c | +| conversions.swift:218:13:218:13 | [post] arr2c | conversions.swift:220:13:220:13 | arr2c | +| conversions.swift:218:13:218:13 | arr2c | conversions.swift:220:13:220:13 | arr2c | +| conversions.swift:219:13:219:13 | arr1c | conversions.swift:219:13:219:20 | ...[...] | +| conversions.swift:220:13:220:13 | arr2c | conversions.swift:220:13:220:20 | ...[...] | +| conversions.swift:226:7:226:7 | SSA def(self) | conversions.swift:226:7:226:7 | self[return] | +| conversions.swift:226:7:226:7 | self | conversions.swift:226:7:226:7 | SSA def(self) | +| conversions.swift:227:6:227:6 | self | conversions.swift:227:6:227:6 | SSA def(self) | +| conversions.swift:227:6:227:6 | self | conversions.swift:227:6:227:6 | SSA def(self) | +| conversions.swift:227:6:227:6 | self | conversions.swift:227:6:227:6 | SSA def(self) | +| conversions.swift:227:6:227:6 | value | conversions.swift:227:6:227:6 | SSA def(value) | +| conversions.swift:229:2:229:2 | SSA def(self) | conversions.swift:230:3:230:3 | self | +| conversions.swift:229:2:229:2 | self | conversions.swift:229:2:229:2 | SSA def(self) | +| conversions.swift:229:7:229:12 | SSA def(v) | conversions.swift:230:12:230:12 | v | +| conversions.swift:229:7:229:12 | v | conversions.swift:229:7:229:12 | SSA def(v) | +| conversions.swift:230:3:230:3 | [post] self | conversions.swift:229:2:231:2 | self[return] | +| conversions.swift:230:3:230:3 | self | conversions.swift:229:2:231:2 | self[return] | +| conversions.swift:235:7:235:17 | SSA def(withUInt) | conversions.swift:236:13:236:13 | withUInt | +| conversions.swift:235:7:235:17 | withUInt | conversions.swift:235:7:235:17 | SSA def(withUInt) | +| conversions.swift:236:13:236:13 | [post] withUInt | conversions.swift:237:14:237:14 | withUInt | +| conversions.swift:236:13:236:13 | withUInt | conversions.swift:237:14:237:14 | withUInt | +| conversions.swift:237:3:237:22 | SSA def(self) | conversions.swift:238:12:238:12 | self | +| conversions.swift:237:10:237:22 | call to Self.init(_:) | conversions.swift:237:3:237:22 | SSA def(self) | +| conversions.swift:238:12:238:12 | [post] self | conversions.swift:235:2:239:2 | self[return] | +| conversions.swift:238:12:238:12 | self | conversions.swift:235:2:239:2 | self[return] | +| conversions.swift:241:7:241:20 | SSA def(withMyValue) | conversions.swift:242:13:242:13 | withMyValue | +| conversions.swift:241:7:241:20 | withMyValue | conversions.swift:241:7:241:20 | SSA def(withMyValue) | +| conversions.swift:242:13:242:13 | [post] withMyValue | conversions.swift:243:10:243:10 | withMyValue | +| conversions.swift:242:13:242:13 | withMyValue | conversions.swift:243:10:243:10 | withMyValue | +| conversions.swift:243:3:243:22 | SSA def(self) | conversions.swift:244:12:244:12 | self | +| conversions.swift:244:12:244:12 | [post] self | conversions.swift:241:2:245:2 | self[return] | +| conversions.swift:244:12:244:12 | self | conversions.swift:241:2:245:2 | self[return] | +| conversions.swift:247:7:247:21 | SSA def(withMyValue2) | conversions.swift:248:13:248:13 | withMyValue2 | +| conversions.swift:247:7:247:21 | withMyValue2 | conversions.swift:247:7:247:21 | SSA def(withMyValue2) | +| conversions.swift:248:13:248:13 | [post] withMyValue2 | conversions.swift:249:11:249:11 | withMyValue2 | +| conversions.swift:248:13:248:13 | withMyValue2 | conversions.swift:249:11:249:11 | withMyValue2 | +| conversions.swift:249:7:249:7 | SSA def(x) | conversions.swift:250:10:250:10 | x | +| conversions.swift:249:7:249:7 | x | conversions.swift:249:7:249:7 | SSA def(x) | +| conversions.swift:249:11:249:24 | .v | conversions.swift:249:7:249:7 | x | +| conversions.swift:250:3:250:10 | SSA def(self) | conversions.swift:251:12:251:12 | self | +| conversions.swift:250:10:250:10 | x | conversions.swift:250:3:250:10 | SSA def(self) | +| conversions.swift:251:12:251:12 | [post] self | conversions.swift:247:2:252:2 | self[return] | +| conversions.swift:251:12:251:12 | self | conversions.swift:247:2:252:2 | self[return] | +| conversions.swift:254:14:254:14 | SSA def(self) | conversions.swift:254:2:257:2 | self[return] | +| conversions.swift:254:14:254:14 | self | conversions.swift:254:14:254:14 | SSA def(self) | +| conversions.swift:254:20:254:33 | SSA def(withMyValue) | conversions.swift:255:13:255:13 | withMyValue | +| conversions.swift:254:20:254:33 | withMyValue | conversions.swift:254:20:254:33 | SSA def(withMyValue) | +| conversions.swift:255:13:255:13 | [post] withMyValue | conversions.swift:256:10:256:10 | withMyValue | +| conversions.swift:255:13:255:13 | withMyValue | conversions.swift:256:10:256:10 | withMyValue | | simple.swift:12:13:12:13 | 1 | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 38d1de0167e7..e7dc06ad3259 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -1,131 +1,138 @@ edges -| conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Float.init(_:) | provenance | | -| conversions.swift:36:19:36:38 | call to sourceInt(_:) | conversions.swift:36:12:36:39 | call to String.init(_:) | provenance | | -| conversions.swift:37:12:37:39 | call to String.init(_:) | conversions.swift:37:12:37:41 | .utf8 | provenance | | -| conversions.swift:37:19:37:38 | call to sourceInt(_:) | conversions.swift:37:12:37:39 | call to String.init(_:) | provenance | | -| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:40:12:40:12 | arr | provenance | | -| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:41:12:41:12 | arr [Collection element] | provenance | | -| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:42:20:42:20 | arr [Collection element] | provenance | | -| conversions.swift:39:12:39:39 | [...] [Collection element] | conversions.swift:43:20:43:20 | arr [Collection element] | provenance | | -| conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:39:12:39:39 | [...] [Collection element] | provenance | | -| conversions.swift:41:12:41:12 | arr [Collection element] | conversions.swift:41:12:41:17 | ...[...] | provenance | | -| conversions.swift:42:20:42:20 | arr [Collection element] | conversions.swift:42:12:42:23 | call to Array.init(_:) | provenance | | -| conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | conversions.swift:43:12:43:26 | ...[...] | provenance | | -| conversions.swift:43:20:43:20 | arr [Collection element] | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | provenance | | -| conversions.swift:44:20:44:42 | call to sourceString(_:) | conversions.swift:44:20:44:44 | .utf8 | provenance | | -| conversions.swift:44:20:44:44 | .utf8 | conversions.swift:44:12:44:48 | call to Array.init(_:) | provenance | | -| conversions.swift:45:12:45:48 | call to Array.init(_:) [Collection element] | conversions.swift:45:12:45:51 | ...[...] | provenance | | -| conversions.swift:45:20:45:42 | call to sourceString(_:) | conversions.swift:45:20:45:44 | .utf8 | provenance | | -| conversions.swift:45:20:45:44 | .utf8 | conversions.swift:45:12:45:48 | call to Array.init(_:) [Collection element] | provenance | | -| conversions.swift:47:13:47:32 | call to sourceInt(_:) | conversions.swift:48:13:48:13 | v | provenance | | -| conversions.swift:51:18:51:50 | call to numericCast(_:) | conversions.swift:52:12:52:12 | v2 | provenance | | -| conversions.swift:51:30:51:49 | call to sourceInt(_:) | conversions.swift:51:18:51:50 | call to numericCast(_:) | provenance | | -| conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | conversions.swift:55:12:55:12 | v4 | provenance | | -| conversions.swift:54:31:54:50 | call to sourceInt(_:) | conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | provenance | | -| conversions.swift:63:11:63:35 | call to abs(_:) | conversions.swift:64:12:64:12 | v7 | provenance | | -| conversions.swift:63:15:63:34 | call to sourceInt(_:) | conversions.swift:63:11:63:35 | call to abs(_:) | provenance | | -| conversions.swift:75:12:75:50 | call to Self.init(_:radix:) [some:0] | conversions.swift:75:12:75:51 | ...! | provenance | | -| conversions.swift:75:16:75:38 | call to sourceString(_:) | conversions.swift:75:12:75:50 | call to Self.init(_:radix:) [some:0] | provenance | | -| conversions.swift:77:30:77:49 | call to sourceInt(_:) | conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | provenance | | -| conversions.swift:78:27:78:46 | call to sourceInt(_:) | conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | provenance | | -| conversions.swift:79:12:79:31 | call to sourceInt(_:) | conversions.swift:79:12:79:33 | .littleEndian | provenance | | -| conversions.swift:80:12:80:31 | call to sourceInt(_:) | conversions.swift:80:12:80:33 | .bigEndian | provenance | | -| conversions.swift:109:18:109:39 | call to sourceFloat(_:) | conversions.swift:109:12:109:40 | call to Float.init(_:) | provenance | | -| conversions.swift:111:19:111:40 | call to sourceFloat(_:) | conversions.swift:111:12:111:41 | call to String.init(_:) | provenance | | -| conversions.swift:112:12:112:41 | call to String.init(_:) | conversions.swift:112:12:112:43 | .utf8 | provenance | | -| conversions.swift:112:19:112:40 | call to sourceFloat(_:) | conversions.swift:112:12:112:41 | call to String.init(_:) | provenance | | -| conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | conversions.swift:113:12:113:43 | call to String.init(_:) | provenance | | -| conversions.swift:114:12:114:43 | call to String.init(_:) | conversions.swift:114:12:114:45 | .utf8 | provenance | | -| conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | conversions.swift:114:12:114:43 | call to String.init(_:) | provenance | | -| conversions.swift:115:19:115:41 | call to sourceDouble(_:) | conversions.swift:115:12:115:42 | call to String.init(_:) | provenance | | -| conversions.swift:116:12:116:42 | call to String.init(_:) | conversions.swift:116:12:116:44 | .utf8 | provenance | | -| conversions.swift:116:19:116:41 | call to sourceDouble(_:) | conversions.swift:116:12:116:42 | call to String.init(_:) | provenance | | -| conversions.swift:118:18:118:39 | call to sourceFloat(_:) | conversions.swift:118:12:118:40 | call to Float.init(_:) | provenance | | -| conversions.swift:119:41:119:60 | call to sourceInt(_:) | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | provenance | | -| conversions.swift:120:57:120:78 | call to sourceFloat(_:) | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | provenance | | -| conversions.swift:122:44:122:65 | call to sourceFloat(_:) | conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | provenance | | -| conversions.swift:124:12:124:33 | call to sourceFloat(_:) | conversions.swift:124:12:124:35 | .exponent | provenance | | -| conversions.swift:125:12:125:33 | call to sourceFloat(_:) | conversions.swift:125:12:125:35 | .significand | provenance | | -| conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | conversions.swift:126:12:126:37 | .exponent | provenance | | -| conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | conversions.swift:127:12:127:37 | .significand | provenance | | -| conversions.swift:128:12:128:34 | call to sourceDouble(_:) | conversions.swift:128:12:128:36 | .exponent | provenance | | -| conversions.swift:129:12:129:34 | call to sourceDouble(_:) | conversions.swift:129:12:129:36 | .significand | provenance | | -| conversions.swift:136:19:136:42 | call to sourceString(_:) | conversions.swift:136:12:136:43 | call to String.init(_:) | provenance | | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:144:12:144:45 | call to MyString.init(_:) [some:0] | provenance | | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:145:12:145:12 | ms2 | provenance | | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:146:12:146:16 | .description | provenance | | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) | conversions.swift:147:12:147:16 | .debugDescription | provenance | | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) [some:0] | conversions.swift:144:12:144:46 | ...! | provenance | | -| conversions.swift:144:12:144:46 | ...! | conversions.swift:145:12:145:12 | ms2 | provenance | | -| conversions.swift:144:12:144:46 | ...! | conversions.swift:146:12:146:16 | .description | provenance | | -| conversions.swift:144:12:144:46 | ...! | conversions.swift:147:12:147:16 | .debugDescription | provenance | | -| conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:144:12:144:45 | call to MyString.init(_:) | provenance | | -| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:153:12:153:12 | parent | provenance | | -| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:154:12:154:12 | parent | provenance | | -| conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:156:40:156:40 | parent | provenance | | -| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:157:12:157:12 | v3 | provenance | | -| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:158:12:158:12 | v3 | provenance | | -| conversions.swift:156:40:156:40 | parent | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | provenance | | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:173:13:173:13 | arr1 | provenance | | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:175:13:175:19 | ...[...] | provenance | | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:178:25:178:25 | arr1 | provenance | | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:185:31:185:31 | arr1 | provenance | | -| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:174:13:174:13 | arr2 | provenance | | -| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:176:13:176:13 | arr2 [Collection element] | provenance | | -| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:179:25:179:25 | arr2 [Collection element] | provenance | | -| conversions.swift:172:14:172:33 | [...] [Collection element] | conversions.swift:186:31:186:31 | arr2 [Collection element] | provenance | | -| conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:172:14:172:33 | [...] [Collection element] | provenance | | -| conversions.swift:176:13:176:13 | arr2 [Collection element] | conversions.swift:176:13:176:19 | ...[...] | provenance | | -| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:180:13:180:13 | arr1b | provenance | | -| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:182:13:182:13 | arr1b [Collection element] | provenance | | -| conversions.swift:178:25:178:25 | arr1 | conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | provenance | | -| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:181:13:181:13 | arr2b | provenance | | -| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:183:13:183:13 | arr2b [Collection element] | provenance | | -| conversions.swift:179:25:179:25 | arr2 [Collection element] | conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | provenance | | -| conversions.swift:182:13:182:13 | arr1b [Collection element] | conversions.swift:182:13:182:20 | ...[...] | provenance | | -| conversions.swift:183:13:183:13 | arr2b [Collection element] | conversions.swift:183:13:183:20 | ...[...] | provenance | | -| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:187:13:187:13 | arr1c | provenance | | -| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:189:13:189:13 | arr1c [Collection element] | provenance | | -| conversions.swift:185:31:185:31 | arr1 | conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | provenance | | -| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:188:13:188:13 | arr2c | provenance | | -| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:190:13:190:13 | arr2c [Collection element] | provenance | | -| conversions.swift:186:31:186:31 | arr2 [Collection element] | conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | provenance | | -| conversions.swift:189:13:189:13 | arr1c [Collection element] | conversions.swift:189:13:189:20 | ...[...] | provenance | | -| conversions.swift:190:13:190:13 | arr2c [Collection element] | conversions.swift:190:13:190:20 | ...[...] | provenance | | -| conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | self [v] | provenance | | -| conversions.swift:199:7:199:12 | v | conversions.swift:200:12:200:12 | v | provenance | | -| conversions.swift:200:3:200:3 | [post] self [v] | conversions.swift:199:2:201:2 | self[return] [v] | provenance | | -| conversions.swift:200:12:200:12 | v | conversions.swift:200:3:200:3 | [post] self [v] | provenance | | -| conversions.swift:205:7:205:17 | withUInt | conversions.swift:206:13:206:13 | withUInt | provenance | | -| conversions.swift:211:7:211:20 | withMyValue [v] | conversions.swift:212:13:212:13 | withMyValue [v] | provenance | | -| conversions.swift:212:13:212:13 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | provenance | | -| conversions.swift:212:13:212:13 | withMyValue [v] | conversions.swift:212:13:212:25 | .v | provenance | | -| conversions.swift:217:7:217:21 | withMyValue2 [v] | conversions.swift:218:13:218:13 | withMyValue2 [v] | provenance | | -| conversions.swift:217:7:217:21 | withMyValue2 [v] | conversions.swift:219:11:219:11 | withMyValue2 [v] | provenance | | -| conversions.swift:218:13:218:13 | withMyValue2 [v] | conversions.swift:197:6:197:6 | self [v] | provenance | | -| conversions.swift:218:13:218:13 | withMyValue2 [v] | conversions.swift:218:13:218:26 | .v | provenance | | -| conversions.swift:219:11:219:11 | withMyValue2 [v] | conversions.swift:197:6:197:6 | self [v] | provenance | | -| conversions.swift:219:11:219:11 | withMyValue2 [v] | conversions.swift:219:11:219:24 | .v | provenance | | -| conversions.swift:219:11:219:24 | .v | conversions.swift:217:2:222:2 | self[return] | provenance | | -| conversions.swift:219:11:219:24 | .v | conversions.swift:221:12:221:12 | self | provenance | | -| conversions.swift:224:20:224:33 | withMyValue [v] | conversions.swift:225:13:225:13 | withMyValue [v] | provenance | | -| conversions.swift:224:20:224:33 | withMyValue [v] | conversions.swift:226:10:226:10 | withMyValue [v] | provenance | | -| conversions.swift:225:13:225:13 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | provenance | | -| conversions.swift:225:13:225:13 | withMyValue [v] | conversions.swift:225:13:225:25 | .v | provenance | | -| conversions.swift:226:10:226:10 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | provenance | | -| conversions.swift:226:10:226:10 | withMyValue [v] | conversions.swift:226:10:226:22 | .v | provenance | | -| conversions.swift:232:26:232:43 | call to sourceUInt(_:) | conversions.swift:205:7:205:17 | withUInt | provenance | | -| conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | conversions.swift:211:7:211:20 | withMyValue [v] | provenance | | -| conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | provenance | | -| conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | provenance | | -| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | conversions.swift:217:7:217:21 | withMyValue2 [v] | provenance | | -| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | provenance | | -| conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | provenance | | -| conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | provenance | | -| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | conversions.swift:224:20:224:33 | withMyValue [v] | provenance | | -| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | provenance | | -| conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | provenance | | -| conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | provenance | | +| conversions.swift:45:18:45:38 | call to sourceInt(_:) | conversions.swift:45:12:45:39 | call to Float.init(_:) | provenance | | +| conversions.swift:46:19:46:39 | call to sourceInt(_:) | conversions.swift:46:12:46:40 | call to Double.init(_:) | provenance | | +| conversions.swift:47:19:47:39 | call to sourceInt(_:) | conversions.swift:47:12:47:40 | call to String.init(_:) | provenance | | +| conversions.swift:48:12:48:40 | call to String.init(_:) | conversions.swift:48:12:48:42 | .utf8 | provenance | | +| conversions.swift:48:19:48:39 | call to sourceInt(_:) | conversions.swift:48:12:48:40 | call to String.init(_:) | provenance | | +| conversions.swift:50:12:50:39 | [...] [Collection element] | conversions.swift:51:12:51:12 | arr | provenance | | +| conversions.swift:50:12:50:39 | [...] [Collection element] | conversions.swift:52:12:52:12 | arr [Collection element] | provenance | | +| conversions.swift:50:12:50:39 | [...] [Collection element] | conversions.swift:53:20:53:20 | arr [Collection element] | provenance | | +| conversions.swift:50:12:50:39 | [...] [Collection element] | conversions.swift:54:20:54:20 | arr [Collection element] | provenance | | +| conversions.swift:50:19:50:38 | call to sourceInt(_:) | conversions.swift:50:12:50:39 | [...] [Collection element] | provenance | | +| conversions.swift:52:12:52:12 | arr [Collection element] | conversions.swift:52:12:52:17 | ...[...] | provenance | | +| conversions.swift:53:20:53:20 | arr [Collection element] | conversions.swift:53:12:53:23 | call to Array.init(_:) | provenance | | +| conversions.swift:54:12:54:23 | call to Array.init(_:) [Collection element] | conversions.swift:54:12:54:26 | ...[...] | provenance | | +| conversions.swift:54:20:54:20 | arr [Collection element] | conversions.swift:54:12:54:23 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:55:20:55:42 | call to sourceString(_:) | conversions.swift:55:20:55:44 | .utf8 | provenance | | +| conversions.swift:55:20:55:44 | .utf8 | conversions.swift:55:12:55:48 | call to Array.init(_:) | provenance | | +| conversions.swift:56:12:56:48 | call to Array.init(_:) [Collection element] | conversions.swift:56:12:56:51 | ...[...] | provenance | | +| conversions.swift:56:20:56:42 | call to sourceString(_:) | conversions.swift:56:20:56:44 | .utf8 | provenance | | +| conversions.swift:56:20:56:44 | .utf8 | conversions.swift:56:12:56:48 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:58:13:58:32 | call to sourceInt(_:) | conversions.swift:59:13:59:13 | v | provenance | | +| conversions.swift:62:18:62:50 | call to numericCast(_:) | conversions.swift:63:12:63:12 | v2 | provenance | | +| conversions.swift:62:30:62:49 | call to sourceInt(_:) | conversions.swift:62:18:62:50 | call to numericCast(_:) | provenance | | +| conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | conversions.swift:66:12:66:12 | v4 | provenance | | +| conversions.swift:65:31:65:50 | call to sourceInt(_:) | conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | provenance | | +| conversions.swift:74:11:74:35 | call to abs(_:) | conversions.swift:75:12:75:12 | v7 | provenance | | +| conversions.swift:74:15:74:34 | call to sourceInt(_:) | conversions.swift:74:11:74:35 | call to abs(_:) | provenance | | +| conversions.swift:90:12:90:50 | call to Self.init(_:radix:) [some:0] | conversions.swift:90:12:90:51 | ...! | provenance | | +| conversions.swift:90:16:90:38 | call to sourceString(_:) | conversions.swift:90:12:90:50 | call to Self.init(_:radix:) [some:0] | provenance | | +| conversions.swift:91:12:91:53 | call to Self.init(_:radix:) [some:0] | conversions.swift:91:12:91:54 | ...! | provenance | | +| conversions.swift:91:19:91:41 | call to sourceString(_:) | conversions.swift:91:12:91:53 | call to Self.init(_:radix:) [some:0] | provenance | | +| conversions.swift:93:30:93:49 | call to sourceInt(_:) | conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | provenance | | +| conversions.swift:94:33:94:55 | call to sourceUInt64(_:) | conversions.swift:94:12:94:56 | call to Self.init(littleEndian:) | provenance | | +| conversions.swift:95:27:95:46 | call to sourceInt(_:) | conversions.swift:95:12:95:47 | call to Self.init(bigEndian:) | provenance | | +| conversions.swift:96:30:96:52 | call to sourceUInt64(_:) | conversions.swift:96:12:96:53 | call to Self.init(bigEndian:) | provenance | | +| conversions.swift:97:12:97:31 | call to sourceInt(_:) | conversions.swift:97:12:97:33 | .littleEndian | provenance | | +| conversions.swift:98:12:98:34 | call to sourceUInt64(_:) | conversions.swift:98:12:98:36 | .littleEndian | provenance | | +| conversions.swift:99:12:99:31 | call to sourceInt(_:) | conversions.swift:99:12:99:33 | .bigEndian | provenance | | +| conversions.swift:100:12:100:34 | call to sourceUInt64(_:) | conversions.swift:100:12:100:36 | .bigEndian | provenance | | +| conversions.swift:137:18:137:39 | call to sourceFloat(_:) | conversions.swift:137:12:137:40 | call to Float.init(_:) | provenance | | +| conversions.swift:139:19:139:40 | call to sourceFloat(_:) | conversions.swift:139:12:139:41 | call to String.init(_:) | provenance | | +| conversions.swift:140:12:140:41 | call to String.init(_:) | conversions.swift:140:12:140:43 | .utf8 | provenance | | +| conversions.swift:140:19:140:40 | call to sourceFloat(_:) | conversions.swift:140:12:140:41 | call to String.init(_:) | provenance | | +| conversions.swift:141:19:141:42 | call to sourceFloat80(_:) | conversions.swift:141:12:141:43 | call to String.init(_:) | provenance | | +| conversions.swift:142:12:142:43 | call to String.init(_:) | conversions.swift:142:12:142:45 | .utf8 | provenance | | +| conversions.swift:142:19:142:42 | call to sourceFloat80(_:) | conversions.swift:142:12:142:43 | call to String.init(_:) | provenance | | +| conversions.swift:143:19:143:41 | call to sourceDouble(_:) | conversions.swift:143:12:143:42 | call to String.init(_:) | provenance | | +| conversions.swift:144:12:144:42 | call to String.init(_:) | conversions.swift:144:12:144:44 | .utf8 | provenance | | +| conversions.swift:144:19:144:41 | call to sourceDouble(_:) | conversions.swift:144:12:144:42 | call to String.init(_:) | provenance | | +| conversions.swift:146:18:146:39 | call to sourceFloat(_:) | conversions.swift:146:12:146:40 | call to Float.init(_:) | provenance | | +| conversions.swift:147:41:147:60 | call to sourceInt(_:) | conversions.swift:147:12:147:79 | call to Float.init(sign:exponent:significand:) | provenance | | +| conversions.swift:148:57:148:78 | call to sourceFloat(_:) | conversions.swift:148:12:148:79 | call to Float.init(sign:exponent:significand:) | provenance | | +| conversions.swift:150:44:150:65 | call to sourceFloat(_:) | conversions.swift:150:12:150:66 | call to Float.init(signOf:magnitudeOf:) | provenance | | +| conversions.swift:152:12:152:33 | call to sourceFloat(_:) | conversions.swift:152:12:152:35 | .exponent | provenance | | +| conversions.swift:153:12:153:33 | call to sourceFloat(_:) | conversions.swift:153:12:153:35 | .significand | provenance | | +| conversions.swift:154:12:154:35 | call to sourceFloat80(_:) | conversions.swift:154:12:154:37 | .exponent | provenance | | +| conversions.swift:155:12:155:35 | call to sourceFloat80(_:) | conversions.swift:155:12:155:37 | .significand | provenance | | +| conversions.swift:156:12:156:34 | call to sourceDouble(_:) | conversions.swift:156:12:156:36 | .exponent | provenance | | +| conversions.swift:157:12:157:34 | call to sourceDouble(_:) | conversions.swift:157:12:157:36 | .significand | provenance | | +| conversions.swift:166:19:166:42 | call to sourceString(_:) | conversions.swift:166:12:166:43 | call to String.init(_:) | provenance | | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) | conversions.swift:174:12:174:45 | call to MyString.init(_:) [some:0] | provenance | | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) | conversions.swift:175:12:175:12 | ms2 | provenance | | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) | conversions.swift:176:12:176:16 | .description | provenance | | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) | conversions.swift:177:12:177:16 | .debugDescription | provenance | | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) [some:0] | conversions.swift:174:12:174:46 | ...! | provenance | | +| conversions.swift:174:12:174:46 | ...! | conversions.swift:175:12:175:12 | ms2 | provenance | | +| conversions.swift:174:12:174:46 | ...! | conversions.swift:176:12:176:16 | .description | provenance | | +| conversions.swift:174:12:174:46 | ...! | conversions.swift:177:12:177:16 | .debugDescription | provenance | | +| conversions.swift:174:21:174:44 | call to sourceString(_:) | conversions.swift:174:12:174:45 | call to MyString.init(_:) | provenance | | +| conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:183:12:183:12 | parent | provenance | | +| conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:184:12:184:12 | parent | provenance | | +| conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:186:40:186:40 | parent | provenance | | +| conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | conversions.swift:187:12:187:12 | v3 | provenance | | +| conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | conversions.swift:188:12:188:12 | v3 | provenance | | +| conversions.swift:186:40:186:40 | parent | conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | provenance | | +| conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:203:13:203:13 | arr1 | provenance | | +| conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:205:13:205:19 | ...[...] | provenance | | +| conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:208:25:208:25 | arr1 | provenance | | +| conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:215:31:215:31 | arr1 | provenance | | +| conversions.swift:202:14:202:33 | [...] [Collection element] | conversions.swift:204:13:204:13 | arr2 | provenance | | +| conversions.swift:202:14:202:33 | [...] [Collection element] | conversions.swift:206:13:206:13 | arr2 [Collection element] | provenance | | +| conversions.swift:202:14:202:33 | [...] [Collection element] | conversions.swift:209:25:209:25 | arr2 [Collection element] | provenance | | +| conversions.swift:202:14:202:33 | [...] [Collection element] | conversions.swift:216:31:216:31 | arr2 [Collection element] | provenance | | +| conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:202:14:202:33 | [...] [Collection element] | provenance | | +| conversions.swift:206:13:206:13 | arr2 [Collection element] | conversions.swift:206:13:206:19 | ...[...] | provenance | | +| conversions.swift:208:19:208:29 | call to Array.init(_:) [Collection element] | conversions.swift:210:13:210:13 | arr1b | provenance | | +| conversions.swift:208:19:208:29 | call to Array.init(_:) [Collection element] | conversions.swift:212:13:212:13 | arr1b [Collection element] | provenance | | +| conversions.swift:208:25:208:25 | arr1 | conversions.swift:208:19:208:29 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:209:19:209:29 | call to Array.init(_:) [Collection element] | conversions.swift:211:13:211:13 | arr2b | provenance | | +| conversions.swift:209:19:209:29 | call to Array.init(_:) [Collection element] | conversions.swift:213:13:213:13 | arr2b [Collection element] | provenance | | +| conversions.swift:209:25:209:25 | arr2 [Collection element] | conversions.swift:209:19:209:29 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:212:13:212:13 | arr1b [Collection element] | conversions.swift:212:13:212:20 | ...[...] | provenance | | +| conversions.swift:213:13:213:13 | arr2b [Collection element] | conversions.swift:213:13:213:20 | ...[...] | provenance | | +| conversions.swift:215:15:215:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:217:13:217:13 | arr1c | provenance | | +| conversions.swift:215:15:215:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:219:13:219:13 | arr1c [Collection element] | provenance | | +| conversions.swift:215:31:215:31 | arr1 | conversions.swift:215:15:215:35 | call to ContiguousArray.init(_:) [Collection element] | provenance | | +| conversions.swift:216:15:216:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:218:13:218:13 | arr2c | provenance | | +| conversions.swift:216:15:216:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:220:13:220:13 | arr2c [Collection element] | provenance | | +| conversions.swift:216:31:216:31 | arr2 [Collection element] | conversions.swift:216:15:216:35 | call to ContiguousArray.init(_:) [Collection element] | provenance | | +| conversions.swift:219:13:219:13 | arr1c [Collection element] | conversions.swift:219:13:219:20 | ...[...] | provenance | | +| conversions.swift:220:13:220:13 | arr2c [Collection element] | conversions.swift:220:13:220:20 | ...[...] | provenance | | +| conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | self [v] | provenance | | +| conversions.swift:229:7:229:12 | v | conversions.swift:230:12:230:12 | v | provenance | | +| conversions.swift:230:3:230:3 | [post] self [v] | conversions.swift:229:2:231:2 | self[return] [v] | provenance | | +| conversions.swift:230:12:230:12 | v | conversions.swift:230:3:230:3 | [post] self [v] | provenance | | +| conversions.swift:235:7:235:17 | withUInt | conversions.swift:236:13:236:13 | withUInt | provenance | | +| conversions.swift:241:7:241:20 | withMyValue [v] | conversions.swift:242:13:242:13 | withMyValue [v] | provenance | | +| conversions.swift:242:13:242:13 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | provenance | | +| conversions.swift:242:13:242:13 | withMyValue [v] | conversions.swift:242:13:242:25 | .v | provenance | | +| conversions.swift:247:7:247:21 | withMyValue2 [v] | conversions.swift:248:13:248:13 | withMyValue2 [v] | provenance | | +| conversions.swift:247:7:247:21 | withMyValue2 [v] | conversions.swift:249:11:249:11 | withMyValue2 [v] | provenance | | +| conversions.swift:248:13:248:13 | withMyValue2 [v] | conversions.swift:227:6:227:6 | self [v] | provenance | | +| conversions.swift:248:13:248:13 | withMyValue2 [v] | conversions.swift:248:13:248:26 | .v | provenance | | +| conversions.swift:249:11:249:11 | withMyValue2 [v] | conversions.swift:227:6:227:6 | self [v] | provenance | | +| conversions.swift:249:11:249:11 | withMyValue2 [v] | conversions.swift:249:11:249:24 | .v | provenance | | +| conversions.swift:249:11:249:24 | .v | conversions.swift:247:2:252:2 | self[return] | provenance | | +| conversions.swift:249:11:249:24 | .v | conversions.swift:251:12:251:12 | self | provenance | | +| conversions.swift:254:20:254:33 | withMyValue [v] | conversions.swift:255:13:255:13 | withMyValue [v] | provenance | | +| conversions.swift:254:20:254:33 | withMyValue [v] | conversions.swift:256:10:256:10 | withMyValue [v] | provenance | | +| conversions.swift:255:13:255:13 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | provenance | | +| conversions.swift:255:13:255:13 | withMyValue [v] | conversions.swift:255:13:255:25 | .v | provenance | | +| conversions.swift:256:10:256:10 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | provenance | | +| conversions.swift:256:10:256:10 | withMyValue [v] | conversions.swift:256:10:256:22 | .v | provenance | | +| conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:235:7:235:17 | withUInt | provenance | | +| conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | conversions.swift:241:7:241:20 | withMyValue [v] | provenance | | +| conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | provenance | | +| conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | provenance | | +| conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | conversions.swift:247:7:247:21 | withMyValue2 [v] | provenance | | +| conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | provenance | | +| conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | provenance | | +| conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | provenance | | +| conversions.swift:271:35:271:60 | call to MyValue.init(_:) [v] | conversions.swift:254:20:254:33 | withMyValue [v] | provenance | | +| conversions.swift:271:35:271:60 | call to MyValue.init(_:) [v] | conversions.swift:271:12:271:61 | call to mkInt(withMyValue:) | provenance | | +| conversions.swift:271:43:271:59 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | provenance | | +| conversions.swift:271:43:271:59 | call to sourceInt(_:) | conversions.swift:271:35:271:60 | call to MyValue.init(_:) [v] | provenance | | | file://:0:0:0:0 | [post] self [first] | stringinterpolation.swift:6:6:6:6 | self [Return] [first] | provenance | | | file://:0:0:0:0 | [post] self [second] | stringinterpolation.swift:7:6:7:6 | self [Return] [second] | provenance | | | file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | provenance | | @@ -210,166 +217,179 @@ edges | try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | provenance | | nodes | conversions.swift:32:12:32:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:35:12:35:38 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:35:18:35:37 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:36:12:36:39 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:36:19:36:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:37:12:37:39 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:37:12:37:41 | .utf8 | semmle.label | .utf8 | -| conversions.swift:37:19:37:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:39:12:39:39 | [...] [Collection element] | semmle.label | [...] [Collection element] | -| conversions.swift:39:19:39:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:40:12:40:12 | arr | semmle.label | arr | -| conversions.swift:41:12:41:12 | arr [Collection element] | semmle.label | arr [Collection element] | -| conversions.swift:41:12:41:17 | ...[...] | semmle.label | ...[...] | -| conversions.swift:42:12:42:23 | call to Array.init(_:) | semmle.label | call to Array.init(_:) | -| conversions.swift:42:20:42:20 | arr [Collection element] | semmle.label | arr [Collection element] | -| conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | -| conversions.swift:43:12:43:26 | ...[...] | semmle.label | ...[...] | -| conversions.swift:43:20:43:20 | arr [Collection element] | semmle.label | arr [Collection element] | -| conversions.swift:44:12:44:48 | call to Array.init(_:) | semmle.label | call to Array.init(_:) | -| conversions.swift:44:20:44:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | -| conversions.swift:44:20:44:44 | .utf8 | semmle.label | .utf8 | -| conversions.swift:45:12:45:48 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | -| conversions.swift:45:12:45:51 | ...[...] | semmle.label | ...[...] | -| conversions.swift:45:20:45:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | -| conversions.swift:45:20:45:44 | .utf8 | semmle.label | .utf8 | -| conversions.swift:47:13:47:32 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:48:13:48:13 | v | semmle.label | v | -| conversions.swift:51:18:51:50 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | -| conversions.swift:51:30:51:49 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:52:12:52:12 | v2 | semmle.label | v2 | -| conversions.swift:54:17:54:66 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | -| conversions.swift:54:31:54:50 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:55:12:55:12 | v4 | semmle.label | v4 | -| conversions.swift:63:11:63:35 | call to abs(_:) | semmle.label | call to abs(_:) | -| conversions.swift:63:15:63:34 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:64:12:64:12 | v7 | semmle.label | v7 | -| conversions.swift:75:12:75:50 | call to Self.init(_:radix:) [some:0] | semmle.label | call to Self.init(_:radix:) [some:0] | -| conversions.swift:75:12:75:51 | ...! | semmle.label | ...! | -| conversions.swift:75:16:75:38 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | -| conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | -| conversions.swift:77:30:77:49 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | -| conversions.swift:78:27:78:46 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:79:12:79:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:79:12:79:33 | .littleEndian | semmle.label | .littleEndian | -| conversions.swift:80:12:80:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:80:12:80:33 | .bigEndian | semmle.label | .bigEndian | -| conversions.swift:108:12:108:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:109:12:109:40 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:109:18:109:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:111:12:111:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:111:19:111:40 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:112:12:112:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:112:12:112:43 | .utf8 | semmle.label | .utf8 | -| conversions.swift:112:19:112:40 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:113:12:113:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | -| conversions.swift:114:12:114:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:114:12:114:45 | .utf8 | semmle.label | .utf8 | -| conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | -| conversions.swift:115:12:115:42 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:115:19:115:41 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | -| conversions.swift:116:12:116:42 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:116:12:116:44 | .utf8 | semmle.label | .utf8 | -| conversions.swift:116:19:116:41 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | -| conversions.swift:118:12:118:40 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | -| conversions.swift:118:18:118:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | -| conversions.swift:119:41:119:60 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | -| conversions.swift:120:57:120:78 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | semmle.label | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:122:44:122:65 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:124:12:124:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:124:12:124:35 | .exponent | semmle.label | .exponent | -| conversions.swift:125:12:125:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | -| conversions.swift:125:12:125:35 | .significand | semmle.label | .significand | -| conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | -| conversions.swift:126:12:126:37 | .exponent | semmle.label | .exponent | -| conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | -| conversions.swift:127:12:127:37 | .significand | semmle.label | .significand | -| conversions.swift:128:12:128:34 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | -| conversions.swift:128:12:128:36 | .exponent | semmle.label | .exponent | -| conversions.swift:129:12:129:34 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | -| conversions.swift:129:12:129:36 | .significand | semmle.label | .significand | -| conversions.swift:135:12:135:35 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | -| conversions.swift:136:12:136:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| conversions.swift:136:19:136:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) | semmle.label | call to MyString.init(_:) | -| conversions.swift:144:12:144:45 | call to MyString.init(_:) [some:0] | semmle.label | call to MyString.init(_:) [some:0] | -| conversions.swift:144:12:144:46 | ...! | semmle.label | ...! | -| conversions.swift:144:21:144:44 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | -| conversions.swift:145:12:145:12 | ms2 | semmle.label | ms2 | -| conversions.swift:146:12:146:16 | .description | semmle.label | .description | -| conversions.swift:147:12:147:16 | .debugDescription | semmle.label | .debugDescription | -| conversions.swift:152:31:152:54 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | -| conversions.swift:153:12:153:12 | parent | semmle.label | parent | -| conversions.swift:154:12:154:12 | parent | semmle.label | parent | -| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | semmle.label | call to unsafeDowncast(_:to:) | -| conversions.swift:156:40:156:40 | parent | semmle.label | parent | -| conversions.swift:157:12:157:12 | v3 | semmle.label | v3 | -| conversions.swift:158:12:158:12 | v3 | semmle.label | v3 | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | semmle.label | call to sourceArray(_:) | -| conversions.swift:172:14:172:33 | [...] [Collection element] | semmle.label | [...] [Collection element] | -| conversions.swift:172:15:172:32 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:173:13:173:13 | arr1 | semmle.label | arr1 | -| conversions.swift:174:13:174:13 | arr2 | semmle.label | arr2 | -| conversions.swift:175:13:175:19 | ...[...] | semmle.label | ...[...] | -| conversions.swift:176:13:176:13 | arr2 [Collection element] | semmle.label | arr2 [Collection element] | -| conversions.swift:176:13:176:19 | ...[...] | semmle.label | ...[...] | -| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | -| conversions.swift:178:25:178:25 | arr1 | semmle.label | arr1 | -| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | -| conversions.swift:179:25:179:25 | arr2 [Collection element] | semmle.label | arr2 [Collection element] | -| conversions.swift:180:13:180:13 | arr1b | semmle.label | arr1b | -| conversions.swift:181:13:181:13 | arr2b | semmle.label | arr2b | -| conversions.swift:182:13:182:13 | arr1b [Collection element] | semmle.label | arr1b [Collection element] | -| conversions.swift:182:13:182:20 | ...[...] | semmle.label | ...[...] | -| conversions.swift:183:13:183:13 | arr2b [Collection element] | semmle.label | arr2b [Collection element] | -| conversions.swift:183:13:183:20 | ...[...] | semmle.label | ...[...] | -| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | semmle.label | call to ContiguousArray.init(_:) [Collection element] | -| conversions.swift:185:31:185:31 | arr1 | semmle.label | arr1 | -| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | semmle.label | call to ContiguousArray.init(_:) [Collection element] | -| conversions.swift:186:31:186:31 | arr2 [Collection element] | semmle.label | arr2 [Collection element] | -| conversions.swift:187:13:187:13 | arr1c | semmle.label | arr1c | -| conversions.swift:188:13:188:13 | arr2c | semmle.label | arr2c | -| conversions.swift:189:13:189:13 | arr1c [Collection element] | semmle.label | arr1c [Collection element] | -| conversions.swift:189:13:189:20 | ...[...] | semmle.label | ...[...] | -| conversions.swift:190:13:190:13 | arr2c [Collection element] | semmle.label | arr2c [Collection element] | -| conversions.swift:190:13:190:20 | ...[...] | semmle.label | ...[...] | -| conversions.swift:197:6:197:6 | self [v] | semmle.label | self [v] | -| conversions.swift:199:2:201:2 | self[return] [v] | semmle.label | self[return] [v] | -| conversions.swift:199:7:199:12 | v | semmle.label | v | -| conversions.swift:200:3:200:3 | [post] self [v] | semmle.label | [post] self [v] | -| conversions.swift:200:12:200:12 | v | semmle.label | v | -| conversions.swift:205:7:205:17 | withUInt | semmle.label | withUInt | -| conversions.swift:206:13:206:13 | withUInt | semmle.label | withUInt | -| conversions.swift:211:7:211:20 | withMyValue [v] | semmle.label | withMyValue [v] | -| conversions.swift:212:13:212:13 | withMyValue [v] | semmle.label | withMyValue [v] | -| conversions.swift:212:13:212:25 | .v | semmle.label | .v | -| conversions.swift:217:2:222:2 | self[return] | semmle.label | self[return] | -| conversions.swift:217:7:217:21 | withMyValue2 [v] | semmle.label | withMyValue2 [v] | -| conversions.swift:218:13:218:13 | withMyValue2 [v] | semmle.label | withMyValue2 [v] | -| conversions.swift:218:13:218:26 | .v | semmle.label | .v | -| conversions.swift:219:11:219:11 | withMyValue2 [v] | semmle.label | withMyValue2 [v] | -| conversions.swift:219:11:219:24 | .v | semmle.label | .v | -| conversions.swift:221:12:221:12 | self | semmle.label | self | -| conversions.swift:224:20:224:33 | withMyValue [v] | semmle.label | withMyValue [v] | -| conversions.swift:225:13:225:13 | withMyValue [v] | semmle.label | withMyValue [v] | -| conversions.swift:225:13:225:25 | .v | semmle.label | .v | -| conversions.swift:226:10:226:10 | withMyValue [v] | semmle.label | withMyValue [v] | -| conversions.swift:226:10:226:22 | .v | semmle.label | .v | -| conversions.swift:232:26:232:43 | call to sourceUInt(_:) | semmle.label | call to sourceUInt(_:) | -| conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | -| conversions.swift:235:37:235:53 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | semmle.label | call to Int.init(withMyValue2:) | -| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | -| conversions.swift:238:38:238:54 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | -| conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | semmle.label | call to mkInt(withMyValue:) | -| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | -| conversions.swift:241:43:241:59 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:45:12:45:39 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:45:18:45:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:46:12:46:40 | call to Double.init(_:) | semmle.label | call to Double.init(_:) | +| conversions.swift:46:19:46:39 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:47:12:47:40 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:47:19:47:39 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:48:12:48:40 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:48:12:48:42 | .utf8 | semmle.label | .utf8 | +| conversions.swift:48:19:48:39 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:50:12:50:39 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| conversions.swift:50:19:50:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:51:12:51:12 | arr | semmle.label | arr | +| conversions.swift:52:12:52:12 | arr [Collection element] | semmle.label | arr [Collection element] | +| conversions.swift:52:12:52:17 | ...[...] | semmle.label | ...[...] | +| conversions.swift:53:12:53:23 | call to Array.init(_:) | semmle.label | call to Array.init(_:) | +| conversions.swift:53:20:53:20 | arr [Collection element] | semmle.label | arr [Collection element] | +| conversions.swift:54:12:54:23 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | +| conversions.swift:54:12:54:26 | ...[...] | semmle.label | ...[...] | +| conversions.swift:54:20:54:20 | arr [Collection element] | semmle.label | arr [Collection element] | +| conversions.swift:55:12:55:48 | call to Array.init(_:) | semmle.label | call to Array.init(_:) | +| conversions.swift:55:20:55:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:55:20:55:44 | .utf8 | semmle.label | .utf8 | +| conversions.swift:56:12:56:48 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | +| conversions.swift:56:12:56:51 | ...[...] | semmle.label | ...[...] | +| conversions.swift:56:20:56:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:56:20:56:44 | .utf8 | semmle.label | .utf8 | +| conversions.swift:58:13:58:32 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:59:13:59:13 | v | semmle.label | v | +| conversions.swift:62:18:62:50 | call to numericCast(_:) | semmle.label | call to numericCast(_:) | +| conversions.swift:62:30:62:49 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:63:12:63:12 | v2 | semmle.label | v2 | +| conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | +| conversions.swift:65:31:65:50 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:66:12:66:12 | v4 | semmle.label | v4 | +| conversions.swift:74:11:74:35 | call to abs(_:) | semmle.label | call to abs(_:) | +| conversions.swift:74:15:74:34 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:75:12:75:12 | v7 | semmle.label | v7 | +| conversions.swift:90:12:90:50 | call to Self.init(_:radix:) [some:0] | semmle.label | call to Self.init(_:radix:) [some:0] | +| conversions.swift:90:12:90:51 | ...! | semmle.label | ...! | +| conversions.swift:90:16:90:38 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:91:12:91:53 | call to Self.init(_:radix:) [some:0] | semmle.label | call to Self.init(_:radix:) [some:0] | +| conversions.swift:91:12:91:54 | ...! | semmle.label | ...! | +| conversions.swift:91:19:91:41 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | +| conversions.swift:93:30:93:49 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:94:12:94:56 | call to Self.init(littleEndian:) | semmle.label | call to Self.init(littleEndian:) | +| conversions.swift:94:33:94:55 | call to sourceUInt64(_:) | semmle.label | call to sourceUInt64(_:) | +| conversions.swift:95:12:95:47 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | +| conversions.swift:95:27:95:46 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:96:12:96:53 | call to Self.init(bigEndian:) | semmle.label | call to Self.init(bigEndian:) | +| conversions.swift:96:30:96:52 | call to sourceUInt64(_:) | semmle.label | call to sourceUInt64(_:) | +| conversions.swift:97:12:97:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:97:12:97:33 | .littleEndian | semmle.label | .littleEndian | +| conversions.swift:98:12:98:34 | call to sourceUInt64(_:) | semmle.label | call to sourceUInt64(_:) | +| conversions.swift:98:12:98:36 | .littleEndian | semmle.label | .littleEndian | +| conversions.swift:99:12:99:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:99:12:99:33 | .bigEndian | semmle.label | .bigEndian | +| conversions.swift:100:12:100:34 | call to sourceUInt64(_:) | semmle.label | call to sourceUInt64(_:) | +| conversions.swift:100:12:100:36 | .bigEndian | semmle.label | .bigEndian | +| conversions.swift:136:12:136:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:137:12:137:40 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:137:18:137:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:139:12:139:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:139:19:139:40 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:140:12:140:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:140:12:140:43 | .utf8 | semmle.label | .utf8 | +| conversions.swift:140:19:140:40 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:141:12:141:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:141:19:141:42 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:142:12:142:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:142:12:142:45 | .utf8 | semmle.label | .utf8 | +| conversions.swift:142:19:142:42 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:143:12:143:42 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:143:19:143:41 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:144:12:144:42 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:144:12:144:44 | .utf8 | semmle.label | .utf8 | +| conversions.swift:144:19:144:41 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:146:12:146:40 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | +| conversions.swift:146:18:146:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:147:12:147:79 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:147:41:147:60 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:148:12:148:79 | call to Float.init(sign:exponent:significand:) | semmle.label | call to Float.init(sign:exponent:significand:) | +| conversions.swift:148:57:148:78 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:150:12:150:66 | call to Float.init(signOf:magnitudeOf:) | semmle.label | call to Float.init(signOf:magnitudeOf:) | +| conversions.swift:150:44:150:65 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:152:12:152:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:152:12:152:35 | .exponent | semmle.label | .exponent | +| conversions.swift:153:12:153:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:153:12:153:35 | .significand | semmle.label | .significand | +| conversions.swift:154:12:154:35 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:154:12:154:37 | .exponent | semmle.label | .exponent | +| conversions.swift:155:12:155:35 | call to sourceFloat80(_:) | semmle.label | call to sourceFloat80(_:) | +| conversions.swift:155:12:155:37 | .significand | semmle.label | .significand | +| conversions.swift:156:12:156:34 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:156:12:156:36 | .exponent | semmle.label | .exponent | +| conversions.swift:157:12:157:34 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | +| conversions.swift:157:12:157:36 | .significand | semmle.label | .significand | +| conversions.swift:165:12:165:35 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:166:12:166:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| conversions.swift:166:19:166:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) | semmle.label | call to MyString.init(_:) | +| conversions.swift:174:12:174:45 | call to MyString.init(_:) [some:0] | semmle.label | call to MyString.init(_:) [some:0] | +| conversions.swift:174:12:174:46 | ...! | semmle.label | ...! | +| conversions.swift:174:21:174:44 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:175:12:175:12 | ms2 | semmle.label | ms2 | +| conversions.swift:176:12:176:16 | .description | semmle.label | .description | +| conversions.swift:177:12:177:16 | .debugDescription | semmle.label | .debugDescription | +| conversions.swift:182:31:182:54 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | +| conversions.swift:183:12:183:12 | parent | semmle.label | parent | +| conversions.swift:184:12:184:12 | parent | semmle.label | parent | +| conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | semmle.label | call to unsafeDowncast(_:to:) | +| conversions.swift:186:40:186:40 | parent | semmle.label | parent | +| conversions.swift:187:12:187:12 | v3 | semmle.label | v3 | +| conversions.swift:188:12:188:12 | v3 | semmle.label | v3 | +| conversions.swift:201:14:201:33 | call to sourceArray(_:) | semmle.label | call to sourceArray(_:) | +| conversions.swift:202:14:202:33 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| conversions.swift:202:15:202:32 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:203:13:203:13 | arr1 | semmle.label | arr1 | +| conversions.swift:204:13:204:13 | arr2 | semmle.label | arr2 | +| conversions.swift:205:13:205:19 | ...[...] | semmle.label | ...[...] | +| conversions.swift:206:13:206:13 | arr2 [Collection element] | semmle.label | arr2 [Collection element] | +| conversions.swift:206:13:206:19 | ...[...] | semmle.label | ...[...] | +| conversions.swift:208:19:208:29 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | +| conversions.swift:208:25:208:25 | arr1 | semmle.label | arr1 | +| conversions.swift:209:19:209:29 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | +| conversions.swift:209:25:209:25 | arr2 [Collection element] | semmle.label | arr2 [Collection element] | +| conversions.swift:210:13:210:13 | arr1b | semmle.label | arr1b | +| conversions.swift:211:13:211:13 | arr2b | semmle.label | arr2b | +| conversions.swift:212:13:212:13 | arr1b [Collection element] | semmle.label | arr1b [Collection element] | +| conversions.swift:212:13:212:20 | ...[...] | semmle.label | ...[...] | +| conversions.swift:213:13:213:13 | arr2b [Collection element] | semmle.label | arr2b [Collection element] | +| conversions.swift:213:13:213:20 | ...[...] | semmle.label | ...[...] | +| conversions.swift:215:15:215:35 | call to ContiguousArray.init(_:) [Collection element] | semmle.label | call to ContiguousArray.init(_:) [Collection element] | +| conversions.swift:215:31:215:31 | arr1 | semmle.label | arr1 | +| conversions.swift:216:15:216:35 | call to ContiguousArray.init(_:) [Collection element] | semmle.label | call to ContiguousArray.init(_:) [Collection element] | +| conversions.swift:216:31:216:31 | arr2 [Collection element] | semmle.label | arr2 [Collection element] | +| conversions.swift:217:13:217:13 | arr1c | semmle.label | arr1c | +| conversions.swift:218:13:218:13 | arr2c | semmle.label | arr2c | +| conversions.swift:219:13:219:13 | arr1c [Collection element] | semmle.label | arr1c [Collection element] | +| conversions.swift:219:13:219:20 | ...[...] | semmle.label | ...[...] | +| conversions.swift:220:13:220:13 | arr2c [Collection element] | semmle.label | arr2c [Collection element] | +| conversions.swift:220:13:220:20 | ...[...] | semmle.label | ...[...] | +| conversions.swift:227:6:227:6 | self [v] | semmle.label | self [v] | +| conversions.swift:229:2:231:2 | self[return] [v] | semmle.label | self[return] [v] | +| conversions.swift:229:7:229:12 | v | semmle.label | v | +| conversions.swift:230:3:230:3 | [post] self [v] | semmle.label | [post] self [v] | +| conversions.swift:230:12:230:12 | v | semmle.label | v | +| conversions.swift:235:7:235:17 | withUInt | semmle.label | withUInt | +| conversions.swift:236:13:236:13 | withUInt | semmle.label | withUInt | +| conversions.swift:241:7:241:20 | withMyValue [v] | semmle.label | withMyValue [v] | +| conversions.swift:242:13:242:13 | withMyValue [v] | semmle.label | withMyValue [v] | +| conversions.swift:242:13:242:25 | .v | semmle.label | .v | +| conversions.swift:247:2:252:2 | self[return] | semmle.label | self[return] | +| conversions.swift:247:7:247:21 | withMyValue2 [v] | semmle.label | withMyValue2 [v] | +| conversions.swift:248:13:248:13 | withMyValue2 [v] | semmle.label | withMyValue2 [v] | +| conversions.swift:248:13:248:26 | .v | semmle.label | .v | +| conversions.swift:249:11:249:11 | withMyValue2 [v] | semmle.label | withMyValue2 [v] | +| conversions.swift:249:11:249:24 | .v | semmle.label | .v | +| conversions.swift:251:12:251:12 | self | semmle.label | self | +| conversions.swift:254:20:254:33 | withMyValue [v] | semmle.label | withMyValue [v] | +| conversions.swift:255:13:255:13 | withMyValue [v] | semmle.label | withMyValue [v] | +| conversions.swift:255:13:255:25 | .v | semmle.label | .v | +| conversions.swift:256:10:256:10 | withMyValue [v] | semmle.label | withMyValue [v] | +| conversions.swift:256:10:256:22 | .v | semmle.label | .v | +| conversions.swift:262:26:262:43 | call to sourceUInt(_:) | semmle.label | call to sourceUInt(_:) | +| conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | +| conversions.swift:265:37:265:53 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | semmle.label | call to Int.init(withMyValue2:) | +| conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | +| conversions.swift:268:38:268:54 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:271:12:271:61 | call to mkInt(withMyValue:) | semmle.label | call to mkInt(withMyValue:) | +| conversions.swift:271:35:271:60 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | +| conversions.swift:271:43:271:59 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | file://:0:0:0:0 | .first | semmle.label | .first | | file://:0:0:0:0 | .second | semmle.label | .second | | file://:0:0:0:0 | .v | semmle.label | .v | @@ -495,16 +515,16 @@ nodes | try.swift:18:18:18:25 | call to source() | semmle.label | call to source() | | try.swift:18:18:18:25 | call to source() [some:0] | semmle.label | call to source() [some:0] | subpaths -| conversions.swift:212:13:212:13 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:212:13:212:25 | .v | -| conversions.swift:218:13:218:13 | withMyValue2 [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:218:13:218:26 | .v | -| conversions.swift:219:11:219:11 | withMyValue2 [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:219:11:219:24 | .v | -| conversions.swift:225:13:225:13 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:225:13:225:25 | .v | -| conversions.swift:226:10:226:10 | withMyValue [v] | conversions.swift:197:6:197:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:226:10:226:22 | .v | -| conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:235:29:235:54 | call to MyValue.init(_:) [v] | -| conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | conversions.swift:217:7:217:21 | withMyValue2 [v] | conversions.swift:217:2:222:2 | self[return] | conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | -| conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:238:30:238:55 | call to MyValue.init(_:) [v] | -| conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | conversions.swift:224:20:224:33 | withMyValue [v] | conversions.swift:226:10:226:22 | .v | conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | -| conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:241:35:241:60 | call to MyValue.init(_:) [v] | +| conversions.swift:242:13:242:13 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:242:13:242:25 | .v | +| conversions.swift:248:13:248:13 | withMyValue2 [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:248:13:248:26 | .v | +| conversions.swift:249:11:249:11 | withMyValue2 [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:249:11:249:24 | .v | +| conversions.swift:255:13:255:13 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:255:13:255:25 | .v | +| conversions.swift:256:10:256:10 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:256:10:256:22 | .v | +| conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | conversions.swift:229:2:231:2 | self[return] [v] | conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | +| conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | conversions.swift:247:7:247:21 | withMyValue2 [v] | conversions.swift:247:2:252:2 | self[return] | conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | +| conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | conversions.swift:229:2:231:2 | self[return] [v] | conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | +| conversions.swift:271:35:271:60 | call to MyValue.init(_:) [v] | conversions.swift:254:20:254:33 | withMyValue [v] | conversions.swift:256:10:256:22 | .v | conversions.swift:271:12:271:61 | call to mkInt(withMyValue:) | +| conversions.swift:271:43:271:59 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | conversions.swift:229:2:231:2 | self[return] [v] | conversions.swift:271:35:271:60 | call to MyValue.init(_:) [v] | | stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | .first | stringinterpolation.swift:13:36:13:41 | .first | | stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:6:6:6:6 | value | stringinterpolation.swift:6:6:6:6 | self [Return] [first] | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | | stringinterpolation.swift:22:21:22:21 | p1 [first] | stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | .first | stringinterpolation.swift:22:21:22:24 | .first | @@ -514,70 +534,76 @@ subpaths | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | .second | stringinterpolation.swift:31:21:31:24 | .second | #select | conversions.swift:32:12:32:31 | call to sourceInt(_:) | conversions.swift:32:12:32:31 | call to sourceInt(_:) | conversions.swift:32:12:32:31 | call to sourceInt(_:) | result | -| conversions.swift:35:12:35:38 | call to Float.init(_:) | conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Float.init(_:) | result | -| conversions.swift:36:12:36:39 | call to String.init(_:) | conversions.swift:36:19:36:38 | call to sourceInt(_:) | conversions.swift:36:12:36:39 | call to String.init(_:) | result | -| conversions.swift:37:12:37:41 | .utf8 | conversions.swift:37:19:37:38 | call to sourceInt(_:) | conversions.swift:37:12:37:41 | .utf8 | result | -| conversions.swift:40:12:40:12 | arr | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:40:12:40:12 | arr | result | -| conversions.swift:41:12:41:17 | ...[...] | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:41:12:41:17 | ...[...] | result | -| conversions.swift:42:12:42:23 | call to Array.init(_:) | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:42:12:42:23 | call to Array.init(_:) | result | -| conversions.swift:43:12:43:26 | ...[...] | conversions.swift:39:19:39:38 | call to sourceInt(_:) | conversions.swift:43:12:43:26 | ...[...] | result | -| conversions.swift:44:12:44:48 | call to Array.init(_:) | conversions.swift:44:20:44:42 | call to sourceString(_:) | conversions.swift:44:12:44:48 | call to Array.init(_:) | result | -| conversions.swift:45:12:45:51 | ...[...] | conversions.swift:45:20:45:42 | call to sourceString(_:) | conversions.swift:45:12:45:51 | ...[...] | result | -| conversions.swift:48:13:48:13 | v | conversions.swift:47:13:47:32 | call to sourceInt(_:) | conversions.swift:48:13:48:13 | v | result | -| conversions.swift:52:12:52:12 | v2 | conversions.swift:51:30:51:49 | call to sourceInt(_:) | conversions.swift:52:12:52:12 | v2 | result | -| conversions.swift:55:12:55:12 | v4 | conversions.swift:54:31:54:50 | call to sourceInt(_:) | conversions.swift:55:12:55:12 | v4 | result | -| conversions.swift:64:12:64:12 | v7 | conversions.swift:63:15:63:34 | call to sourceInt(_:) | conversions.swift:64:12:64:12 | v7 | result | -| conversions.swift:75:12:75:51 | ...! | conversions.swift:75:16:75:38 | call to sourceString(_:) | conversions.swift:75:12:75:51 | ...! | result | -| conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | conversions.swift:77:30:77:49 | call to sourceInt(_:) | conversions.swift:77:12:77:50 | call to Self.init(littleEndian:) | result | -| conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | conversions.swift:78:27:78:46 | call to sourceInt(_:) | conversions.swift:78:12:78:47 | call to Self.init(bigEndian:) | result | -| conversions.swift:79:12:79:33 | .littleEndian | conversions.swift:79:12:79:31 | call to sourceInt(_:) | conversions.swift:79:12:79:33 | .littleEndian | result | -| conversions.swift:80:12:80:33 | .bigEndian | conversions.swift:80:12:80:31 | call to sourceInt(_:) | conversions.swift:80:12:80:33 | .bigEndian | result | -| conversions.swift:108:12:108:33 | call to sourceFloat(_:) | conversions.swift:108:12:108:33 | call to sourceFloat(_:) | conversions.swift:108:12:108:33 | call to sourceFloat(_:) | result | -| conversions.swift:109:12:109:40 | call to Float.init(_:) | conversions.swift:109:18:109:39 | call to sourceFloat(_:) | conversions.swift:109:12:109:40 | call to Float.init(_:) | result | -| conversions.swift:111:12:111:41 | call to String.init(_:) | conversions.swift:111:19:111:40 | call to sourceFloat(_:) | conversions.swift:111:12:111:41 | call to String.init(_:) | result | -| conversions.swift:112:12:112:43 | .utf8 | conversions.swift:112:19:112:40 | call to sourceFloat(_:) | conversions.swift:112:12:112:43 | .utf8 | result | -| conversions.swift:113:12:113:43 | call to String.init(_:) | conversions.swift:113:19:113:42 | call to sourceFloat80(_:) | conversions.swift:113:12:113:43 | call to String.init(_:) | result | -| conversions.swift:114:12:114:45 | .utf8 | conversions.swift:114:19:114:42 | call to sourceFloat80(_:) | conversions.swift:114:12:114:45 | .utf8 | result | -| conversions.swift:115:12:115:42 | call to String.init(_:) | conversions.swift:115:19:115:41 | call to sourceDouble(_:) | conversions.swift:115:12:115:42 | call to String.init(_:) | result | -| conversions.swift:116:12:116:44 | .utf8 | conversions.swift:116:19:116:41 | call to sourceDouble(_:) | conversions.swift:116:12:116:44 | .utf8 | result | -| conversions.swift:118:12:118:40 | call to Float.init(_:) | conversions.swift:118:18:118:39 | call to sourceFloat(_:) | conversions.swift:118:12:118:40 | call to Float.init(_:) | result | -| conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | conversions.swift:119:41:119:60 | call to sourceInt(_:) | conversions.swift:119:12:119:79 | call to Float.init(sign:exponent:significand:) | result | -| conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | conversions.swift:120:57:120:78 | call to sourceFloat(_:) | conversions.swift:120:12:120:79 | call to Float.init(sign:exponent:significand:) | result | -| conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | conversions.swift:122:44:122:65 | call to sourceFloat(_:) | conversions.swift:122:12:122:66 | call to Float.init(signOf:magnitudeOf:) | result | -| conversions.swift:124:12:124:35 | .exponent | conversions.swift:124:12:124:33 | call to sourceFloat(_:) | conversions.swift:124:12:124:35 | .exponent | result | -| conversions.swift:125:12:125:35 | .significand | conversions.swift:125:12:125:33 | call to sourceFloat(_:) | conversions.swift:125:12:125:35 | .significand | result | -| conversions.swift:126:12:126:37 | .exponent | conversions.swift:126:12:126:35 | call to sourceFloat80(_:) | conversions.swift:126:12:126:37 | .exponent | result | -| conversions.swift:127:12:127:37 | .significand | conversions.swift:127:12:127:35 | call to sourceFloat80(_:) | conversions.swift:127:12:127:37 | .significand | result | -| conversions.swift:128:12:128:36 | .exponent | conversions.swift:128:12:128:34 | call to sourceDouble(_:) | conversions.swift:128:12:128:36 | .exponent | result | -| conversions.swift:129:12:129:36 | .significand | conversions.swift:129:12:129:34 | call to sourceDouble(_:) | conversions.swift:129:12:129:36 | .significand | result | -| conversions.swift:135:12:135:35 | call to sourceString(_:) | conversions.swift:135:12:135:35 | call to sourceString(_:) | conversions.swift:135:12:135:35 | call to sourceString(_:) | result | -| conversions.swift:136:12:136:43 | call to String.init(_:) | conversions.swift:136:19:136:42 | call to sourceString(_:) | conversions.swift:136:12:136:43 | call to String.init(_:) | result | -| conversions.swift:145:12:145:12 | ms2 | conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:145:12:145:12 | ms2 | result | -| conversions.swift:146:12:146:16 | .description | conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:146:12:146:16 | .description | result | -| conversions.swift:147:12:147:16 | .debugDescription | conversions.swift:144:21:144:44 | call to sourceString(_:) | conversions.swift:147:12:147:16 | .debugDescription | result | -| conversions.swift:153:12:153:12 | parent | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:153:12:153:12 | parent | result | -| conversions.swift:154:12:154:12 | parent | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:154:12:154:12 | parent | result | -| conversions.swift:157:12:157:12 | v3 | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:157:12:157:12 | v3 | result | -| conversions.swift:158:12:158:12 | v3 | conversions.swift:152:31:152:54 | call to sourceString(_:) | conversions.swift:158:12:158:12 | v3 | result | -| conversions.swift:173:13:173:13 | arr1 | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:173:13:173:13 | arr1 | result | -| conversions.swift:174:13:174:13 | arr2 | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:174:13:174:13 | arr2 | result | -| conversions.swift:175:13:175:19 | ...[...] | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:175:13:175:19 | ...[...] | result | -| conversions.swift:176:13:176:19 | ...[...] | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:176:13:176:19 | ...[...] | result | -| conversions.swift:180:13:180:13 | arr1b | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:180:13:180:13 | arr1b | result | -| conversions.swift:181:13:181:13 | arr2b | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:181:13:181:13 | arr2b | result | -| conversions.swift:182:13:182:20 | ...[...] | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:182:13:182:20 | ...[...] | result | -| conversions.swift:183:13:183:20 | ...[...] | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:183:13:183:20 | ...[...] | result | -| conversions.swift:187:13:187:13 | arr1c | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:187:13:187:13 | arr1c | result | -| conversions.swift:188:13:188:13 | arr2c | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:188:13:188:13 | arr2c | result | -| conversions.swift:189:13:189:20 | ...[...] | conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:189:13:189:20 | ...[...] | result | -| conversions.swift:190:13:190:20 | ...[...] | conversions.swift:172:15:172:32 | call to sourceInt(_:) | conversions.swift:190:13:190:20 | ...[...] | result | -| conversions.swift:206:13:206:13 | withUInt | conversions.swift:232:26:232:43 | call to sourceUInt(_:) | conversions.swift:206:13:206:13 | withUInt | result | -| conversions.swift:212:13:212:25 | .v | conversions.swift:235:37:235:53 | call to sourceInt(_:) | conversions.swift:212:13:212:25 | .v | result | -| conversions.swift:218:13:218:26 | .v | conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:218:13:218:26 | .v | result | -| conversions.swift:221:12:221:12 | self | conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:221:12:221:12 | self | result | -| conversions.swift:225:13:225:25 | .v | conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:225:13:225:25 | .v | result | -| conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | conversions.swift:238:38:238:54 | call to sourceInt(_:) | conversions.swift:238:12:238:56 | call to Int.init(withMyValue2:) | result | -| conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | conversions.swift:241:43:241:59 | call to sourceInt(_:) | conversions.swift:241:12:241:61 | call to mkInt(withMyValue:) | result | +| conversions.swift:45:12:45:39 | call to Float.init(_:) | conversions.swift:45:18:45:38 | call to sourceInt(_:) | conversions.swift:45:12:45:39 | call to Float.init(_:) | result | +| conversions.swift:46:12:46:40 | call to Double.init(_:) | conversions.swift:46:19:46:39 | call to sourceInt(_:) | conversions.swift:46:12:46:40 | call to Double.init(_:) | result | +| conversions.swift:47:12:47:40 | call to String.init(_:) | conversions.swift:47:19:47:39 | call to sourceInt(_:) | conversions.swift:47:12:47:40 | call to String.init(_:) | result | +| conversions.swift:48:12:48:42 | .utf8 | conversions.swift:48:19:48:39 | call to sourceInt(_:) | conversions.swift:48:12:48:42 | .utf8 | result | +| conversions.swift:51:12:51:12 | arr | conversions.swift:50:19:50:38 | call to sourceInt(_:) | conversions.swift:51:12:51:12 | arr | result | +| conversions.swift:52:12:52:17 | ...[...] | conversions.swift:50:19:50:38 | call to sourceInt(_:) | conversions.swift:52:12:52:17 | ...[...] | result | +| conversions.swift:53:12:53:23 | call to Array.init(_:) | conversions.swift:50:19:50:38 | call to sourceInt(_:) | conversions.swift:53:12:53:23 | call to Array.init(_:) | result | +| conversions.swift:54:12:54:26 | ...[...] | conversions.swift:50:19:50:38 | call to sourceInt(_:) | conversions.swift:54:12:54:26 | ...[...] | result | +| conversions.swift:55:12:55:48 | call to Array.init(_:) | conversions.swift:55:20:55:42 | call to sourceString(_:) | conversions.swift:55:12:55:48 | call to Array.init(_:) | result | +| conversions.swift:56:12:56:51 | ...[...] | conversions.swift:56:20:56:42 | call to sourceString(_:) | conversions.swift:56:12:56:51 | ...[...] | result | +| conversions.swift:59:13:59:13 | v | conversions.swift:58:13:58:32 | call to sourceInt(_:) | conversions.swift:59:13:59:13 | v | result | +| conversions.swift:63:12:63:12 | v2 | conversions.swift:62:30:62:49 | call to sourceInt(_:) | conversions.swift:63:12:63:12 | v2 | result | +| conversions.swift:66:12:66:12 | v4 | conversions.swift:65:31:65:50 | call to sourceInt(_:) | conversions.swift:66:12:66:12 | v4 | result | +| conversions.swift:75:12:75:12 | v7 | conversions.swift:74:15:74:34 | call to sourceInt(_:) | conversions.swift:75:12:75:12 | v7 | result | +| conversions.swift:90:12:90:51 | ...! | conversions.swift:90:16:90:38 | call to sourceString(_:) | conversions.swift:90:12:90:51 | ...! | result | +| conversions.swift:91:12:91:54 | ...! | conversions.swift:91:19:91:41 | call to sourceString(_:) | conversions.swift:91:12:91:54 | ...! | result | +| conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | conversions.swift:93:30:93:49 | call to sourceInt(_:) | conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | result | +| conversions.swift:94:12:94:56 | call to Self.init(littleEndian:) | conversions.swift:94:33:94:55 | call to sourceUInt64(_:) | conversions.swift:94:12:94:56 | call to Self.init(littleEndian:) | result | +| conversions.swift:95:12:95:47 | call to Self.init(bigEndian:) | conversions.swift:95:27:95:46 | call to sourceInt(_:) | conversions.swift:95:12:95:47 | call to Self.init(bigEndian:) | result | +| conversions.swift:96:12:96:53 | call to Self.init(bigEndian:) | conversions.swift:96:30:96:52 | call to sourceUInt64(_:) | conversions.swift:96:12:96:53 | call to Self.init(bigEndian:) | result | +| conversions.swift:97:12:97:33 | .littleEndian | conversions.swift:97:12:97:31 | call to sourceInt(_:) | conversions.swift:97:12:97:33 | .littleEndian | result | +| conversions.swift:98:12:98:36 | .littleEndian | conversions.swift:98:12:98:34 | call to sourceUInt64(_:) | conversions.swift:98:12:98:36 | .littleEndian | result | +| conversions.swift:99:12:99:33 | .bigEndian | conversions.swift:99:12:99:31 | call to sourceInt(_:) | conversions.swift:99:12:99:33 | .bigEndian | result | +| conversions.swift:100:12:100:36 | .bigEndian | conversions.swift:100:12:100:34 | call to sourceUInt64(_:) | conversions.swift:100:12:100:36 | .bigEndian | result | +| conversions.swift:136:12:136:33 | call to sourceFloat(_:) | conversions.swift:136:12:136:33 | call to sourceFloat(_:) | conversions.swift:136:12:136:33 | call to sourceFloat(_:) | result | +| conversions.swift:137:12:137:40 | call to Float.init(_:) | conversions.swift:137:18:137:39 | call to sourceFloat(_:) | conversions.swift:137:12:137:40 | call to Float.init(_:) | result | +| conversions.swift:139:12:139:41 | call to String.init(_:) | conversions.swift:139:19:139:40 | call to sourceFloat(_:) | conversions.swift:139:12:139:41 | call to String.init(_:) | result | +| conversions.swift:140:12:140:43 | .utf8 | conversions.swift:140:19:140:40 | call to sourceFloat(_:) | conversions.swift:140:12:140:43 | .utf8 | result | +| conversions.swift:141:12:141:43 | call to String.init(_:) | conversions.swift:141:19:141:42 | call to sourceFloat80(_:) | conversions.swift:141:12:141:43 | call to String.init(_:) | result | +| conversions.swift:142:12:142:45 | .utf8 | conversions.swift:142:19:142:42 | call to sourceFloat80(_:) | conversions.swift:142:12:142:45 | .utf8 | result | +| conversions.swift:143:12:143:42 | call to String.init(_:) | conversions.swift:143:19:143:41 | call to sourceDouble(_:) | conversions.swift:143:12:143:42 | call to String.init(_:) | result | +| conversions.swift:144:12:144:44 | .utf8 | conversions.swift:144:19:144:41 | call to sourceDouble(_:) | conversions.swift:144:12:144:44 | .utf8 | result | +| conversions.swift:146:12:146:40 | call to Float.init(_:) | conversions.swift:146:18:146:39 | call to sourceFloat(_:) | conversions.swift:146:12:146:40 | call to Float.init(_:) | result | +| conversions.swift:147:12:147:79 | call to Float.init(sign:exponent:significand:) | conversions.swift:147:41:147:60 | call to sourceInt(_:) | conversions.swift:147:12:147:79 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:148:12:148:79 | call to Float.init(sign:exponent:significand:) | conversions.swift:148:57:148:78 | call to sourceFloat(_:) | conversions.swift:148:12:148:79 | call to Float.init(sign:exponent:significand:) | result | +| conversions.swift:150:12:150:66 | call to Float.init(signOf:magnitudeOf:) | conversions.swift:150:44:150:65 | call to sourceFloat(_:) | conversions.swift:150:12:150:66 | call to Float.init(signOf:magnitudeOf:) | result | +| conversions.swift:152:12:152:35 | .exponent | conversions.swift:152:12:152:33 | call to sourceFloat(_:) | conversions.swift:152:12:152:35 | .exponent | result | +| conversions.swift:153:12:153:35 | .significand | conversions.swift:153:12:153:33 | call to sourceFloat(_:) | conversions.swift:153:12:153:35 | .significand | result | +| conversions.swift:154:12:154:37 | .exponent | conversions.swift:154:12:154:35 | call to sourceFloat80(_:) | conversions.swift:154:12:154:37 | .exponent | result | +| conversions.swift:155:12:155:37 | .significand | conversions.swift:155:12:155:35 | call to sourceFloat80(_:) | conversions.swift:155:12:155:37 | .significand | result | +| conversions.swift:156:12:156:36 | .exponent | conversions.swift:156:12:156:34 | call to sourceDouble(_:) | conversions.swift:156:12:156:36 | .exponent | result | +| conversions.swift:157:12:157:36 | .significand | conversions.swift:157:12:157:34 | call to sourceDouble(_:) | conversions.swift:157:12:157:36 | .significand | result | +| conversions.swift:165:12:165:35 | call to sourceString(_:) | conversions.swift:165:12:165:35 | call to sourceString(_:) | conversions.swift:165:12:165:35 | call to sourceString(_:) | result | +| conversions.swift:166:12:166:43 | call to String.init(_:) | conversions.swift:166:19:166:42 | call to sourceString(_:) | conversions.swift:166:12:166:43 | call to String.init(_:) | result | +| conversions.swift:175:12:175:12 | ms2 | conversions.swift:174:21:174:44 | call to sourceString(_:) | conversions.swift:175:12:175:12 | ms2 | result | +| conversions.swift:176:12:176:16 | .description | conversions.swift:174:21:174:44 | call to sourceString(_:) | conversions.swift:176:12:176:16 | .description | result | +| conversions.swift:177:12:177:16 | .debugDescription | conversions.swift:174:21:174:44 | call to sourceString(_:) | conversions.swift:177:12:177:16 | .debugDescription | result | +| conversions.swift:183:12:183:12 | parent | conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:183:12:183:12 | parent | result | +| conversions.swift:184:12:184:12 | parent | conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:184:12:184:12 | parent | result | +| conversions.swift:187:12:187:12 | v3 | conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:187:12:187:12 | v3 | result | +| conversions.swift:188:12:188:12 | v3 | conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:188:12:188:12 | v3 | result | +| conversions.swift:203:13:203:13 | arr1 | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:203:13:203:13 | arr1 | result | +| conversions.swift:204:13:204:13 | arr2 | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:204:13:204:13 | arr2 | result | +| conversions.swift:205:13:205:19 | ...[...] | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:205:13:205:19 | ...[...] | result | +| conversions.swift:206:13:206:19 | ...[...] | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:206:13:206:19 | ...[...] | result | +| conversions.swift:210:13:210:13 | arr1b | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:210:13:210:13 | arr1b | result | +| conversions.swift:211:13:211:13 | arr2b | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:211:13:211:13 | arr2b | result | +| conversions.swift:212:13:212:20 | ...[...] | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:212:13:212:20 | ...[...] | result | +| conversions.swift:213:13:213:20 | ...[...] | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:213:13:213:20 | ...[...] | result | +| conversions.swift:217:13:217:13 | arr1c | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:217:13:217:13 | arr1c | result | +| conversions.swift:218:13:218:13 | arr2c | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:218:13:218:13 | arr2c | result | +| conversions.swift:219:13:219:20 | ...[...] | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:219:13:219:20 | ...[...] | result | +| conversions.swift:220:13:220:20 | ...[...] | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:220:13:220:20 | ...[...] | result | +| conversions.swift:236:13:236:13 | withUInt | conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:236:13:236:13 | withUInt | result | +| conversions.swift:242:13:242:25 | .v | conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:242:13:242:25 | .v | result | +| conversions.swift:248:13:248:26 | .v | conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:248:13:248:26 | .v | result | +| conversions.swift:251:12:251:12 | self | conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:251:12:251:12 | self | result | +| conversions.swift:255:13:255:25 | .v | conversions.swift:271:43:271:59 | call to sourceInt(_:) | conversions.swift:255:13:255:25 | .v | result | +| conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | result | +| conversions.swift:271:12:271:61 | call to mkInt(withMyValue:) | conversions.swift:271:43:271:59 | call to sourceInt(_:) | conversions.swift:271:12:271:61 | call to mkInt(withMyValue:) | result | | simple.swift:12:13:12:24 | ... .+(_:_:) ... | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | result | | simple.swift:13:13:13:24 | ... .+(_:_:) ... | simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | result | | simple.swift:14:13:14:24 | ... .-(_:_:) ... | simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected index 0e6a9b75bcb5..0be7309f857d 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected @@ -1,17 +1,30 @@ testFailures | conversions.swift:33:39:34:1 | // $ tainted=conv1-2\n | Missing result: tainted=conv1-2 | -| conversions.swift:34:41:35:1 | // $ tainted=conv1-3\n | Missing result: tainted=conv1-3 | -| conversions.swift:58:16:59:1 | // $ tainted=conv3-4\n | Missing result: tainted=conv3-4 | -| conversions.swift:61:16:62:1 | // $ tainted=conv3-5\n | Missing result: tainted=conv3-5 | -| conversions.swift:69:51:70:1 | // $ tainted=conv3-7\n | Missing result: tainted=conv3-7 | -| conversions.swift:71:49:72:1 | // $ tainted=conv4-1\n | Missing result: tainted=conv4-1 | -| conversions.swift:72:52:73:1 | // $ tainted=conv4-2\n | Missing result: tainted=conv4-2 | -| conversions.swift:73:49:74:1 | // $ tainted=conv4-3\n | Missing result: tainted=conv4-3 | -| conversions.swift:74:59:75:1 | // $ tainted=conv4-4\n | Missing result: tainted=conv4-4 | -| conversions.swift:110:43:111:1 | // $ tainted=conv7-3\n | Missing result: tainted=conv7-3 | -| conversions.swift:130:47:131:1 | // $ tainted=conv9-7\n | Missing result: tainted=conv9-7 | -| conversions.swift:131:49:132:1 | // $ tainted=conv9-8\n | Missing result: tainted=conv9-8 | -| conversions.swift:166:45:167:1 | // $ tainted=cenum\n | Missing result: tainted=cenum | -| conversions.swift:208:18:209:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | -| conversions.swift:232:47:233:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | +| conversions.swift:34:40:35:1 | // $ tainted=conv1-3\n | Missing result: tainted=conv1-3 | +| conversions.swift:35:41:36:1 | // $ tainted=conv1-4\n | Missing result: tainted=conv1-4 | +| conversions.swift:36:41:37:1 | // $ tainted=conv1-5\n | Missing result: tainted=conv1-5 | +| conversions.swift:37:41:38:1 | // $ tainted=conv1-6\n | Missing result: tainted=conv1-6 | +| conversions.swift:39:40:40:1 | // $ tainted=conv1-8\n | Missing result: tainted=conv1-8 | +| conversions.swift:40:41:41:1 | // $ tainted=conv1-9\n | Missing result: tainted=conv1-9 | +| conversions.swift:41:43:42:1 | // $ tainted=conv1-10\n | Missing result: tainted=conv1-10 | +| conversions.swift:42:43:43:1 | // $ tainted=conv1-11\n | Missing result: tainted=conv1-11 | +| conversions.swift:43:43:44:1 | // $ tainted=conv1-12\n | Missing result: tainted=conv1-12 | +| conversions.swift:69:16:70:1 | // $ tainted=conv3-4\n | Missing result: tainted=conv3-4 | +| conversions.swift:72:16:73:1 | // $ tainted=conv3-5\n | Missing result: tainted=conv3-5 | +| conversions.swift:80:51:81:1 | // $ tainted=conv3-7\n | Missing result: tainted=conv3-7 | +| conversions.swift:82:54:83:1 | // $ tainted=conv3-8\n | Missing result: tainted=conv3-8 | +| conversions.swift:84:49:85:1 | // $ tainted=conv4-1\n | Missing result: tainted=conv4-1 | +| conversions.swift:85:52:86:1 | // $ tainted=conv4-2\n | Missing result: tainted=conv4-2 | +| conversions.swift:86:49:87:1 | // $ tainted=conv4-3\n | Missing result: tainted=conv4-3 | +| conversions.swift:87:52:88:1 | // $ tainted=conv4-4\n | Missing result: tainted=conv4-4 | +| conversions.swift:88:59:89:1 | // $ tainted=conv4-5\n | Missing result: tainted=conv4-5 | +| conversions.swift:89:62:90:1 | // $ tainted=conv4-6\n | Missing result: tainted=conv4-6 | +| conversions.swift:138:43:139:1 | // $ tainted=conv7-3\n | Missing result: tainted=conv7-3 | +| conversions.swift:158:47:159:1 | // $ tainted=conv9-7\n | Missing result: tainted=conv9-7 | +| conversions.swift:159:49:160:1 | // $ tainted=conv9-8\n | Missing result: tainted=conv9-8 | +| conversions.swift:160:44:161:1 | // $ tainted=conv9-9\n | Missing result: tainted=conv9-9 | +| conversions.swift:161:48:162:1 | // $ tainted=conv9-10\n | Missing result: tainted=conv9-10 | +| conversions.swift:196:45:197:1 | // $ tainted=cenum\n | Missing result: tainted=cenum | +| conversions.swift:238:18:239:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | +| conversions.swift:262:47:263:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | failures diff --git a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift index 910ee45a526c..e545c9562203 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift +++ b/swift/ql/test/library-tests/dataflow/taint/core/conversions.swift @@ -31,10 +31,21 @@ typealias MyInt = Int func testConversions() { sink(arg: sourceInt("conv1-1")) // $ tainted=conv1-1 sink(arg: Int(sourceInt("conv1-2"))) // $ tainted=conv1-2 - sink(arg: UInt8(sourceInt("conv1-3"))) // $ tainted=conv1-3 - sink(arg: Float(sourceInt("conv1-4"))) // $ tainted=conv1-4 - sink(arg: String(sourceInt("conv1-5"))) // $ tainted=conv1-5 - sink(arg: String(sourceInt("conv1-6")).utf8) // $ tainted=conv1-6 + sink(arg: Int8(sourceInt("conv1-3"))) // $ tainted=conv1-3 + sink(arg: Int16(sourceInt("conv1-4"))) // $ tainted=conv1-4 + sink(arg: Int32(sourceInt("conv1-5"))) // $ tainted=conv1-5 + sink(arg: Int64(sourceInt("conv1-6"))) // $ tainted=conv1-6 + //sink(arg: Int128(sourceInt("conv1-7"))) --- doesn't build in test (yet) + sink(arg: UInt(sourceInt("conv1-8"))) // $ tainted=conv1-8 + sink(arg: UInt8(sourceInt("conv1-9"))) // $ tainted=conv1-9 + sink(arg: UInt16(sourceInt("conv1-10"))) // $ tainted=conv1-10 + sink(arg: UInt32(sourceInt("conv1-11"))) // $ tainted=conv1-11 + sink(arg: UInt64(sourceInt("conv1-12"))) // $ tainted=conv1-12 + //sink(arg: UInt128(sourceInt("conv1-13"))) --- doesn't build in test (yet) + sink(arg: Float(sourceInt("conv1-14"))) // $ tainted=conv1-14 + sink(arg: Double(sourceInt("conv1-15"))) // $ tainted=conv1-15 + sink(arg: String(sourceInt("conv1-16"))) // $ tainted=conv1-16 + sink(arg: String(sourceInt("conv1-17")).utf8) // $ tainted=conv1-17 let arr = [1, 2, sourceInt("conv2-1")] sink(arg: arr) // $ tainted=conv2-1 @@ -67,17 +78,26 @@ func testConversions() { sink(arg: v8) sink(arg: v8.advanced(by: 1)) sink(arg: v8.advanced(by: sourceInt("conv3-7"))) // $ tainted=conv3-7 + sink(arg: v8.distance(to: 1)) + sink(arg: v8.distance(to: sourceUInt64("conv3-8"))) // $ tainted=conv3-8 sink(arg: Int(exactly: sourceInt("conv4-1"))!) // $ tainted=conv4-1 sink(arg: UInt32(exactly: sourceInt("conv4-2"))!) // $ tainted=conv4-2 sink(arg: Int(clamping: sourceInt("conv4-3"))) // $ tainted=conv4-3 - sink(arg: Int(truncatingIfNeeded: sourceInt("conv4-4"))) // $ tainted=conv4-4 - sink(arg: Int(sourceString("conv4-5"), radix: 10)!) // $ tainted=conv4-5 + sink(arg: UInt32(clamping: sourceInt("conv4-4"))) // $ tainted=conv4-4 + sink(arg: Int(truncatingIfNeeded: sourceInt("conv4-5"))) // $ tainted=conv4-5 + sink(arg: UInt32(truncatingIfNeeded: sourceInt("conv4-6"))) // $ tainted=conv4-6 + sink(arg: Int(sourceString("conv4-7"), radix: 10)!) // $ tainted=conv4-7 + sink(arg: UInt32(sourceString("conv4-8"), radix: 10)!) // $ tainted=conv4-8 sink(arg: Int(littleEndian: sourceInt("conv5-1"))) // $ tainted=conv5-1 - sink(arg: Int(bigEndian: sourceInt("conv5-2"))) // $ tainted=conv5-2 - sink(arg: sourceInt("conv5-3").littleEndian) // $ tainted=conv5-3 - sink(arg: sourceInt("conv5-4").bigEndian) // $ tainted=conv5-4 + sink(arg: UInt64(littleEndian: sourceUInt64("conv5-2"))) // $ tainted=conv5-2 + sink(arg: Int(bigEndian: sourceInt("conv5-3"))) // $ tainted=conv5-3 + sink(arg: UInt64(bigEndian: sourceUInt64("conv5-4"))) // $ tainted=conv5-4 + sink(arg: sourceInt("conv5-5").littleEndian) // $ tainted=conv5-5 + sink(arg: sourceUInt64("conv5-6").littleEndian) // $ tainted=conv5-6 + sink(arg: sourceInt("conv5-7").bigEndian) // $ tainted=conv5-7 + sink(arg: sourceUInt64("conv5-8").bigEndian) // $ tainted=conv5-8 let (q1, r1) = 1000.quotientAndRemainder(dividingBy: 2) sink(arg: q1) @@ -91,18 +111,26 @@ func testConversions() { sink(arg: q3) // $ MISSING: tainted=conv6-2 sink(arg: r3) // $ MISSING: tainted=conv6-2 + let (q4, r4) = UInt64(1000).quotientAndRemainder(dividingBy: sourceUInt64("conv6-3")) + sink(arg: q4) // $ MISSING: tainted=conv6-3 + sink(arg: r4) // $ MISSING: tainted=conv6-3 + let pair1 = 1000.addingReportingOverflow(2) sink(arg: pair1.0) // part sink(arg: pair1.1) // overflow - let pair2 = sourceInt("conv6-3").addingReportingOverflow(2) - sink(arg: pair2.0) // $ MISSING: tainted=conv6-3 + let pair2 = sourceInt("conv6-4").addingReportingOverflow(2) + sink(arg: pair2.0) // $ MISSING: tainted=conv6-4 sink(arg: pair2.1) - let pair3 = 1000.addingReportingOverflow(sourceInt("conv6-4")) - sink(arg: pair3.0) // $ MISSING: tainted=conv6-4 + let pair3 = 1000.addingReportingOverflow(sourceInt("conv6-5")) + sink(arg: pair3.0) // $ MISSING: tainted=conv6-5 sink(arg: pair3.1) + let pair4 = UInt64(1000).addingReportingOverflow(sourceUInt64("conv6-6")) + sink(arg: pair4.0) // $ MISSING: tainted=conv6-6 + sink(arg: pair4.1) + // --- sink(arg: sourceFloat("conv7-1")) // $ tainted=conv7-1 @@ -129,6 +157,8 @@ func testConversions() { sink(arg: sourceDouble("conv9-6").significand) // $ tainted=conv9-6 sink(arg: sourceUInt("conv9-7").byteSwapped) // $ tainted=conv9-7 sink(arg: sourceUInt64("conv9-8").byteSwapped) // $ tainted=conv9-8 + sink(arg: sourceInt("conv9-9").magnitude) // $ tainted=conv9-9 + sink(arg: sourceUInt64("conv9-10").magnitude) // $ tainted=conv9-10 // --- From c2c23c872b63430471aa42240f2dcf1188c99887 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 14 Nov 2024 15:06:24 +0000 Subject: [PATCH 3/7] Swift: Address some modelling issues for Swift 6. --- .../frameworks/StandardLibrary/Numeric.qll | 13 +- .../dataflow/taint/core/LocalTaint.expected | 32 +++++ .../dataflow/taint/core/Taint.expected | 125 ++++++++++++++++++ .../dataflow/taint/core/TaintInline.expected | 28 ---- 4 files changed, 169 insertions(+), 29 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll index 093f51ad771d..f3635b8125ca 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Numeric.qll @@ -35,6 +35,17 @@ private class NumericSummaries extends SummaryModelCsv { ";BinaryInteger;true;formatted();;;Argument[-1];ReturnValue;taint", ";BinaryInteger;true;formatted(_:);;;Argument[-1];ReturnValue;taint", ";BinaryInteger;true;quotientAndRemainder(dividingBy:);;;Argument[-1..0];ReturnValue.TupleElement[0,1];taint", + ";BinaryInteger;true;advanced(by:);;;Argument[-1..0];ReturnValue;taint", + ";BinaryInteger;true;distance(to:);;;Argument[-1..0];ReturnValue;taint", + ";SignedInteger;true;init(_:);;;Argument[0];ReturnValue;taint", + ";SignedInteger;true;init(exactly:);;;Argument[0];ReturnValue.OptionalSome;value", + ";UnsignedInteger;true;init(_:);;;Argument[0];ReturnValue;taint", + ";UnsignedInteger;true;init(exactly:);;;Argument[0];ReturnValue.OptionalSome;value", + ";FixedWidthInteger;true;init(_:);;;Argument[0];ReturnValue;taint", + ";FixedWidthInteger;true;init(clamping:);;;Argument[0];ReturnValue;taint", + ";FixedWidthInteger;true;init(truncatingIfNeeded:);;;Argument[0];ReturnValue;taint", + ";FixedWidthInteger;true;init(bitPattern:);;;Argument[0];ReturnValue;taint", // actually implemented in Int, UInt, Double etc. + ";FixedWidthInteger;true;init(truncating:);;;Argument[0];ReturnValue;taint", // actually implemented in Int, UInt, Double etc. ";FixedWidthInteger;true;init(_:radix:);;;Argument[0];ReturnValue.OptionalSome;taint", ";FixedWidthInteger;true;init(littleEndian:);;;Argument[0];ReturnValue;taint", ";FixedWidthInteger;true;init(bigEndian:);;;Argument[0];ReturnValue;taint", @@ -92,7 +103,7 @@ private class NumericFieldsInheritTaint extends TaintInheritingContent, className = "BinaryInteger" and fieldName = "words" or - className = "Numeric" and + className = ["Numeric", "SignedInteger", "UnsignedInteger"] and fieldName = ["magnitude", "byteSwapped"] or className = "BinaryFloatingPoint" and diff --git a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected index a25101527f56..f73a66fa761b 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/LocalTaint.expected @@ -17,6 +17,16 @@ | conversions.swift:25:33:25:33 | self | conversions.swift:25:33:25:33 | SSA def(self) | | conversions.swift:26:22:26:22 | SSA def(self) | conversions.swift:26:22:26:38 | self[return] | | conversions.swift:26:22:26:22 | self | conversions.swift:26:22:26:22 | SSA def(self) | +| conversions.swift:33:16:33:35 | call to sourceInt(_:) | conversions.swift:33:12:33:36 | call to Self.init(_:) | +| conversions.swift:34:17:34:36 | call to sourceInt(_:) | conversions.swift:34:12:34:37 | call to Self.init(_:) | +| conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Self.init(_:) | +| conversions.swift:36:18:36:37 | call to sourceInt(_:) | conversions.swift:36:12:36:38 | call to Self.init(_:) | +| conversions.swift:37:18:37:37 | call to sourceInt(_:) | conversions.swift:37:12:37:38 | call to Self.init(_:) | +| conversions.swift:39:17:39:36 | call to sourceInt(_:) | conversions.swift:39:12:39:37 | call to Self.init(_:) | +| conversions.swift:40:18:40:37 | call to sourceInt(_:) | conversions.swift:40:12:40:38 | call to Self.init(_:) | +| conversions.swift:41:19:41:39 | call to sourceInt(_:) | conversions.swift:41:12:41:40 | call to Self.init(_:) | +| conversions.swift:42:19:42:39 | call to sourceInt(_:) | conversions.swift:42:12:42:40 | call to Self.init(_:) | +| conversions.swift:43:19:43:39 | call to sourceInt(_:) | conversions.swift:43:12:43:40 | call to Self.init(_:) | | conversions.swift:45:18:45:38 | call to sourceInt(_:) | conversions.swift:45:12:45:39 | call to Float.init(_:) | | conversions.swift:46:19:46:39 | call to sourceInt(_:) | conversions.swift:46:12:46:40 | call to Double.init(_:) | | conversions.swift:47:19:47:39 | call to sourceInt(_:) | conversions.swift:47:12:47:40 | call to String.init(_:) | @@ -51,9 +61,11 @@ | conversions.swift:68:6:68:6 | SSA def(v5) | conversions.swift:69:12:69:12 | v5 | | conversions.swift:68:6:68:6 | v5 | conversions.swift:68:6:68:6 | SSA def(v5) | | conversions.swift:68:11:68:56 | call to Self.init(truncatingIfNeeded:) | conversions.swift:68:6:68:6 | v5 | +| conversions.swift:68:36:68:55 | call to sourceInt(_:) | conversions.swift:68:11:68:56 | call to Self.init(truncatingIfNeeded:) | | conversions.swift:71:6:71:6 | SSA def(v6) | conversions.swift:72:12:72:12 | v6 | | conversions.swift:71:6:71:6 | v6 | conversions.swift:71:6:71:6 | SSA def(v6) | | conversions.swift:71:11:71:48 | call to UInt.init(bitPattern:) | conversions.swift:71:6:71:6 | v6 | +| conversions.swift:71:28:71:47 | call to sourceInt(_:) | conversions.swift:71:11:71:48 | call to UInt.init(bitPattern:) | | conversions.swift:74:6:74:6 | SSA def(v7) | conversions.swift:75:12:75:12 | v7 | | conversions.swift:74:6:74:6 | v7 | conversions.swift:74:6:74:6 | SSA def(v7) | | conversions.swift:74:11:74:35 | call to abs(_:) | conversions.swift:74:6:74:6 | v7 | @@ -64,13 +76,25 @@ | conversions.swift:78:12:78:12 | [post] v8 | conversions.swift:79:12:79:12 | v8 | | conversions.swift:78:12:78:12 | v8 | conversions.swift:79:12:79:12 | v8 | | conversions.swift:79:12:79:12 | [post] v8 | conversions.swift:80:12:80:12 | v8 | +| conversions.swift:79:12:79:12 | v8 | conversions.swift:79:12:79:29 | call to advanced(by:) | | conversions.swift:79:12:79:12 | v8 | conversions.swift:80:12:80:12 | v8 | +| conversions.swift:79:28:79:28 | 1 | conversions.swift:79:12:79:29 | call to advanced(by:) | | conversions.swift:80:12:80:12 | [post] v8 | conversions.swift:81:12:81:12 | v8 | +| conversions.swift:80:12:80:12 | v8 | conversions.swift:80:12:80:48 | call to advanced(by:) | | conversions.swift:80:12:80:12 | v8 | conversions.swift:81:12:81:12 | v8 | +| conversions.swift:80:28:80:47 | call to sourceInt(_:) | conversions.swift:80:12:80:48 | call to advanced(by:) | | conversions.swift:81:12:81:12 | [post] v8 | conversions.swift:82:12:82:12 | v8 | +| conversions.swift:81:12:81:12 | v8 | conversions.swift:81:12:81:29 | call to distance(to:) | | conversions.swift:81:12:81:12 | v8 | conversions.swift:82:12:82:12 | v8 | +| conversions.swift:81:28:81:28 | 1 | conversions.swift:81:12:81:29 | call to distance(to:) | +| conversions.swift:82:12:82:12 | v8 | conversions.swift:82:12:82:51 | call to distance(to:) | +| conversions.swift:82:28:82:50 | call to sourceUInt64(_:) | conversions.swift:82:12:82:51 | call to distance(to:) | | conversions.swift:84:12:84:45 | call to Self.init(exactly:) | conversions.swift:84:12:84:46 | ...! | | conversions.swift:85:12:85:48 | call to Self.init(exactly:) | conversions.swift:85:12:85:49 | ...! | +| conversions.swift:86:26:86:45 | call to sourceInt(_:) | conversions.swift:86:12:86:46 | call to Self.init(clamping:) | +| conversions.swift:87:29:87:48 | call to sourceInt(_:) | conversions.swift:87:12:87:49 | call to Self.init(clamping:) | +| conversions.swift:88:36:88:55 | call to sourceInt(_:) | conversions.swift:88:12:88:56 | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:89:39:89:58 | call to sourceInt(_:) | conversions.swift:89:12:89:59 | call to Self.init(truncatingIfNeeded:) | | conversions.swift:90:12:90:50 | call to Self.init(_:radix:) | conversions.swift:90:12:90:51 | ...! | | conversions.swift:91:12:91:53 | call to Self.init(_:radix:) | conversions.swift:91:12:91:54 | ...! | | conversions.swift:93:30:93:49 | call to sourceInt(_:) | conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | @@ -122,6 +146,7 @@ | conversions.swift:131:12:131:12 | [post] pair4 | conversions.swift:132:12:132:12 | pair4 | | conversions.swift:131:12:131:12 | pair4 | conversions.swift:132:12:132:12 | pair4 | | conversions.swift:137:18:137:39 | call to sourceFloat(_:) | conversions.swift:137:12:137:40 | call to Float.init(_:) | +| conversions.swift:138:18:138:39 | call to sourceFloat(_:) | conversions.swift:138:12:138:40 | call to UInt8.init(_:) | | conversions.swift:139:19:139:40 | call to sourceFloat(_:) | conversions.swift:139:12:139:41 | call to String.init(_:) | | conversions.swift:140:12:140:41 | call to String.init(_:) | conversions.swift:140:12:140:43 | .utf8 | | conversions.swift:140:19:140:40 | call to sourceFloat(_:) | conversions.swift:140:12:140:41 | call to String.init(_:) | @@ -144,6 +169,10 @@ | conversions.swift:155:12:155:35 | call to sourceFloat80(_:) | conversions.swift:155:12:155:37 | .significand | | conversions.swift:156:12:156:34 | call to sourceDouble(_:) | conversions.swift:156:12:156:36 | .exponent | | conversions.swift:157:12:157:34 | call to sourceDouble(_:) | conversions.swift:157:12:157:36 | .significand | +| conversions.swift:158:12:158:32 | call to sourceUInt(_:) | conversions.swift:158:12:158:34 | .byteSwapped | +| conversions.swift:159:12:159:34 | call to sourceUInt64(_:) | conversions.swift:159:12:159:36 | .byteSwapped | +| conversions.swift:160:12:160:31 | call to sourceInt(_:) | conversions.swift:160:12:160:33 | .magnitude | +| conversions.swift:161:12:161:35 | call to sourceUInt64(_:) | conversions.swift:161:12:161:37 | .magnitude | | conversions.swift:166:19:166:42 | call to sourceString(_:) | conversions.swift:166:12:166:43 | call to String.init(_:) | | conversions.swift:168:6:168:6 | SSA def(ms1) | conversions.swift:169:12:169:12 | ms1 | | conversions.swift:168:6:168:6 | ms1 | conversions.swift:168:6:168:6 | SSA def(ms1) | @@ -186,6 +215,8 @@ | conversions.swift:186:40:186:40 | parent | conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | | conversions.swift:187:12:187:12 | [post] v3 | conversions.swift:188:12:188:12 | v3 | | conversions.swift:187:12:187:12 | v3 | conversions.swift:188:12:188:12 | v3 | +| conversions.swift:195:24:195:24 | myCEnumConst | conversions.swift:195:12:195:36 | call to Self.init(_:) | +| conversions.swift:196:24:196:41 | call to sourceInt(_:) | conversions.swift:196:12:196:42 | call to Self.init(_:) | | conversions.swift:199:7:199:7 | SSA def(self) | conversions.swift:199:7:199:7 | self[return] | | conversions.swift:199:7:199:7 | self | conversions.swift:199:7:199:7 | SSA def(self) | | conversions.swift:200:2:200:2 | SSA def(self) | conversions.swift:200:2:221:2 | self[return] | @@ -248,6 +279,7 @@ | conversions.swift:236:13:236:13 | withUInt | conversions.swift:237:14:237:14 | withUInt | | conversions.swift:237:3:237:22 | SSA def(self) | conversions.swift:238:12:238:12 | self | | conversions.swift:237:10:237:22 | call to Self.init(_:) | conversions.swift:237:3:237:22 | SSA def(self) | +| conversions.swift:237:14:237:14 | withUInt | conversions.swift:237:10:237:22 | call to Self.init(_:) | | conversions.swift:238:12:238:12 | [post] self | conversions.swift:235:2:239:2 | self[return] | | conversions.swift:238:12:238:12 | self | conversions.swift:235:2:239:2 | self[return] | | conversions.swift:241:7:241:20 | SSA def(withMyValue) | conversions.swift:242:13:242:13 | withMyValue | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index e7dc06ad3259..7563f2173553 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -1,4 +1,14 @@ edges +| conversions.swift:33:16:33:35 | call to sourceInt(_:) | conversions.swift:33:12:33:36 | call to Self.init(_:) | provenance | | +| conversions.swift:34:17:34:36 | call to sourceInt(_:) | conversions.swift:34:12:34:37 | call to Self.init(_:) | provenance | | +| conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Self.init(_:) | provenance | | +| conversions.swift:36:18:36:37 | call to sourceInt(_:) | conversions.swift:36:12:36:38 | call to Self.init(_:) | provenance | | +| conversions.swift:37:18:37:37 | call to sourceInt(_:) | conversions.swift:37:12:37:38 | call to Self.init(_:) | provenance | | +| conversions.swift:39:17:39:36 | call to sourceInt(_:) | conversions.swift:39:12:39:37 | call to Self.init(_:) | provenance | | +| conversions.swift:40:18:40:37 | call to sourceInt(_:) | conversions.swift:40:12:40:38 | call to Self.init(_:) | provenance | | +| conversions.swift:41:19:41:39 | call to sourceInt(_:) | conversions.swift:41:12:41:40 | call to Self.init(_:) | provenance | | +| conversions.swift:42:19:42:39 | call to sourceInt(_:) | conversions.swift:42:12:42:40 | call to Self.init(_:) | provenance | | +| conversions.swift:43:19:43:39 | call to sourceInt(_:) | conversions.swift:43:12:43:40 | call to Self.init(_:) | provenance | | | conversions.swift:45:18:45:38 | call to sourceInt(_:) | conversions.swift:45:12:45:39 | call to Float.init(_:) | provenance | | | conversions.swift:46:19:46:39 | call to sourceInt(_:) | conversions.swift:46:12:46:40 | call to Double.init(_:) | provenance | | | conversions.swift:47:19:47:39 | call to sourceInt(_:) | conversions.swift:47:12:47:40 | call to String.init(_:) | provenance | | @@ -23,8 +33,22 @@ edges | conversions.swift:62:30:62:49 | call to sourceInt(_:) | conversions.swift:62:18:62:50 | call to numericCast(_:) | provenance | | | conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | conversions.swift:66:12:66:12 | v4 | provenance | | | conversions.swift:65:31:65:50 | call to sourceInt(_:) | conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | provenance | | +| conversions.swift:68:11:68:56 | call to Self.init(truncatingIfNeeded:) | conversions.swift:69:12:69:12 | v5 | provenance | | +| conversions.swift:68:36:68:55 | call to sourceInt(_:) | conversions.swift:68:11:68:56 | call to Self.init(truncatingIfNeeded:) | provenance | | +| conversions.swift:71:11:71:48 | call to UInt.init(bitPattern:) | conversions.swift:72:12:72:12 | v6 | provenance | | +| conversions.swift:71:28:71:47 | call to sourceInt(_:) | conversions.swift:71:11:71:48 | call to UInt.init(bitPattern:) | provenance | | | conversions.swift:74:11:74:35 | call to abs(_:) | conversions.swift:75:12:75:12 | v7 | provenance | | | conversions.swift:74:15:74:34 | call to sourceInt(_:) | conversions.swift:74:11:74:35 | call to abs(_:) | provenance | | +| conversions.swift:80:28:80:47 | call to sourceInt(_:) | conversions.swift:80:12:80:48 | call to advanced(by:) | provenance | | +| conversions.swift:82:28:82:50 | call to sourceUInt64(_:) | conversions.swift:82:12:82:51 | call to distance(to:) | provenance | | +| conversions.swift:84:12:84:45 | call to Self.init(exactly:) [some:0] | conversions.swift:84:12:84:46 | ...! | provenance | | +| conversions.swift:84:25:84:44 | call to sourceInt(_:) | conversions.swift:84:12:84:45 | call to Self.init(exactly:) [some:0] | provenance | | +| conversions.swift:85:12:85:48 | call to Self.init(exactly:) [some:0] | conversions.swift:85:12:85:49 | ...! | provenance | | +| conversions.swift:85:28:85:47 | call to sourceInt(_:) | conversions.swift:85:12:85:48 | call to Self.init(exactly:) [some:0] | provenance | | +| conversions.swift:86:26:86:45 | call to sourceInt(_:) | conversions.swift:86:12:86:46 | call to Self.init(clamping:) | provenance | | +| conversions.swift:87:29:87:48 | call to sourceInt(_:) | conversions.swift:87:12:87:49 | call to Self.init(clamping:) | provenance | | +| conversions.swift:88:36:88:55 | call to sourceInt(_:) | conversions.swift:88:12:88:56 | call to Self.init(truncatingIfNeeded:) | provenance | | +| conversions.swift:89:39:89:58 | call to sourceInt(_:) | conversions.swift:89:12:89:59 | call to Self.init(truncatingIfNeeded:) | provenance | | | conversions.swift:90:12:90:50 | call to Self.init(_:radix:) [some:0] | conversions.swift:90:12:90:51 | ...! | provenance | | | conversions.swift:90:16:90:38 | call to sourceString(_:) | conversions.swift:90:12:90:50 | call to Self.init(_:radix:) [some:0] | provenance | | | conversions.swift:91:12:91:53 | call to Self.init(_:radix:) [some:0] | conversions.swift:91:12:91:54 | ...! | provenance | | @@ -38,6 +62,7 @@ edges | conversions.swift:99:12:99:31 | call to sourceInt(_:) | conversions.swift:99:12:99:33 | .bigEndian | provenance | | | conversions.swift:100:12:100:34 | call to sourceUInt64(_:) | conversions.swift:100:12:100:36 | .bigEndian | provenance | | | conversions.swift:137:18:137:39 | call to sourceFloat(_:) | conversions.swift:137:12:137:40 | call to Float.init(_:) | provenance | | +| conversions.swift:138:18:138:39 | call to sourceFloat(_:) | conversions.swift:138:12:138:40 | call to UInt8.init(_:) | provenance | | | conversions.swift:139:19:139:40 | call to sourceFloat(_:) | conversions.swift:139:12:139:41 | call to String.init(_:) | provenance | | | conversions.swift:140:12:140:41 | call to String.init(_:) | conversions.swift:140:12:140:43 | .utf8 | provenance | | | conversions.swift:140:19:140:40 | call to sourceFloat(_:) | conversions.swift:140:12:140:41 | call to String.init(_:) | provenance | | @@ -57,6 +82,10 @@ edges | conversions.swift:155:12:155:35 | call to sourceFloat80(_:) | conversions.swift:155:12:155:37 | .significand | provenance | | | conversions.swift:156:12:156:34 | call to sourceDouble(_:) | conversions.swift:156:12:156:36 | .exponent | provenance | | | conversions.swift:157:12:157:34 | call to sourceDouble(_:) | conversions.swift:157:12:157:36 | .significand | provenance | | +| conversions.swift:158:12:158:32 | call to sourceUInt(_:) | conversions.swift:158:12:158:34 | .byteSwapped | provenance | | +| conversions.swift:159:12:159:34 | call to sourceUInt64(_:) | conversions.swift:159:12:159:36 | .byteSwapped | provenance | | +| conversions.swift:160:12:160:31 | call to sourceInt(_:) | conversions.swift:160:12:160:33 | .magnitude | provenance | | +| conversions.swift:161:12:161:35 | call to sourceUInt64(_:) | conversions.swift:161:12:161:37 | .magnitude | provenance | | | conversions.swift:166:19:166:42 | call to sourceString(_:) | conversions.swift:166:12:166:43 | call to String.init(_:) | provenance | | | conversions.swift:174:12:174:45 | call to MyString.init(_:) | conversions.swift:174:12:174:45 | call to MyString.init(_:) [some:0] | provenance | | | conversions.swift:174:12:174:45 | call to MyString.init(_:) | conversions.swift:175:12:175:12 | ms2 | provenance | | @@ -73,6 +102,7 @@ edges | conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | conversions.swift:187:12:187:12 | v3 | provenance | | | conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | conversions.swift:188:12:188:12 | v3 | provenance | | | conversions.swift:186:40:186:40 | parent | conversions.swift:186:25:186:69 | call to unsafeDowncast(_:to:) | provenance | | +| conversions.swift:196:24:196:41 | call to sourceInt(_:) | conversions.swift:196:12:196:42 | call to Self.init(_:) | provenance | | | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:203:13:203:13 | arr1 | provenance | | | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:205:13:205:19 | ...[...] | provenance | | | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:208:25:208:25 | arr1 | provenance | | @@ -104,6 +134,10 @@ edges | conversions.swift:230:3:230:3 | [post] self [v] | conversions.swift:229:2:231:2 | self[return] [v] | provenance | | | conversions.swift:230:12:230:12 | v | conversions.swift:230:3:230:3 | [post] self [v] | provenance | | | conversions.swift:235:7:235:17 | withUInt | conversions.swift:236:13:236:13 | withUInt | provenance | | +| conversions.swift:235:7:235:17 | withUInt | conversions.swift:237:14:237:14 | withUInt | provenance | | +| conversions.swift:237:10:237:22 | call to Self.init(_:) | conversions.swift:235:2:239:2 | self[return] | provenance | | +| conversions.swift:237:10:237:22 | call to Self.init(_:) | conversions.swift:238:12:238:12 | self | provenance | | +| conversions.swift:237:14:237:14 | withUInt | conversions.swift:237:10:237:22 | call to Self.init(_:) | provenance | | | conversions.swift:241:7:241:20 | withMyValue [v] | conversions.swift:242:13:242:13 | withMyValue [v] | provenance | | | conversions.swift:242:13:242:13 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | provenance | | | conversions.swift:242:13:242:13 | withMyValue [v] | conversions.swift:242:13:242:25 | .v | provenance | | @@ -122,6 +156,7 @@ edges | conversions.swift:256:10:256:10 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | provenance | | | conversions.swift:256:10:256:10 | withMyValue [v] | conversions.swift:256:10:256:22 | .v | provenance | | | conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:235:7:235:17 | withUInt | provenance | | +| conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:262:12:262:44 | call to Int.init(withUInt:) | provenance | | | conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | conversions.swift:241:7:241:20 | withMyValue [v] | provenance | | | conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | provenance | | | conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | provenance | | @@ -217,6 +252,26 @@ edges | try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | provenance | | nodes | conversions.swift:32:12:32:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:33:12:33:36 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:33:16:33:35 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:34:12:34:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:34:17:34:36 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:35:12:35:38 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:35:18:35:37 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:36:12:36:38 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:36:18:36:37 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:37:12:37:38 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:37:18:37:37 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:39:12:39:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:39:17:39:36 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:40:12:40:38 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:40:18:40:37 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:41:12:41:40 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:41:19:41:39 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:42:12:42:40 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:42:19:42:39 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:43:12:43:40 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:43:19:43:39 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:45:12:45:39 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | | conversions.swift:45:18:45:38 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:46:12:46:40 | call to Double.init(_:) | semmle.label | call to Double.init(_:) | @@ -251,9 +306,33 @@ nodes | conversions.swift:65:17:65:66 | call to unsafeBitCast(_:to:) | semmle.label | call to unsafeBitCast(_:to:) | | conversions.swift:65:31:65:50 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:66:12:66:12 | v4 | semmle.label | v4 | +| conversions.swift:68:11:68:56 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:68:36:68:55 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:69:12:69:12 | v5 | semmle.label | v5 | +| conversions.swift:71:11:71:48 | call to UInt.init(bitPattern:) | semmle.label | call to UInt.init(bitPattern:) | +| conversions.swift:71:28:71:47 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:72:12:72:12 | v6 | semmle.label | v6 | | conversions.swift:74:11:74:35 | call to abs(_:) | semmle.label | call to abs(_:) | | conversions.swift:74:15:74:34 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:75:12:75:12 | v7 | semmle.label | v7 | +| conversions.swift:80:12:80:48 | call to advanced(by:) | semmle.label | call to advanced(by:) | +| conversions.swift:80:28:80:47 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:82:12:82:51 | call to distance(to:) | semmle.label | call to distance(to:) | +| conversions.swift:82:28:82:50 | call to sourceUInt64(_:) | semmle.label | call to sourceUInt64(_:) | +| conversions.swift:84:12:84:45 | call to Self.init(exactly:) [some:0] | semmle.label | call to Self.init(exactly:) [some:0] | +| conversions.swift:84:12:84:46 | ...! | semmle.label | ...! | +| conversions.swift:84:25:84:44 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:85:12:85:48 | call to Self.init(exactly:) [some:0] | semmle.label | call to Self.init(exactly:) [some:0] | +| conversions.swift:85:12:85:49 | ...! | semmle.label | ...! | +| conversions.swift:85:28:85:47 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:86:12:86:46 | call to Self.init(clamping:) | semmle.label | call to Self.init(clamping:) | +| conversions.swift:86:26:86:45 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:87:12:87:49 | call to Self.init(clamping:) | semmle.label | call to Self.init(clamping:) | +| conversions.swift:87:29:87:48 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:88:12:88:56 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:88:36:88:55 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:89:12:89:59 | call to Self.init(truncatingIfNeeded:) | semmle.label | call to Self.init(truncatingIfNeeded:) | +| conversions.swift:89:39:89:58 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:90:12:90:50 | call to Self.init(_:radix:) [some:0] | semmle.label | call to Self.init(_:radix:) [some:0] | | conversions.swift:90:12:90:51 | ...! | semmle.label | ...! | | conversions.swift:90:16:90:38 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | @@ -279,6 +358,8 @@ nodes | conversions.swift:136:12:136:33 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | | conversions.swift:137:12:137:40 | call to Float.init(_:) | semmle.label | call to Float.init(_:) | | conversions.swift:137:18:137:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | +| conversions.swift:138:12:138:40 | call to UInt8.init(_:) | semmle.label | call to UInt8.init(_:) | +| conversions.swift:138:18:138:39 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | | conversions.swift:139:12:139:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:139:19:139:40 | call to sourceFloat(_:) | semmle.label | call to sourceFloat(_:) | | conversions.swift:140:12:140:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | @@ -314,6 +395,14 @@ nodes | conversions.swift:156:12:156:36 | .exponent | semmle.label | .exponent | | conversions.swift:157:12:157:34 | call to sourceDouble(_:) | semmle.label | call to sourceDouble(_:) | | conversions.swift:157:12:157:36 | .significand | semmle.label | .significand | +| conversions.swift:158:12:158:32 | call to sourceUInt(_:) | semmle.label | call to sourceUInt(_:) | +| conversions.swift:158:12:158:34 | .byteSwapped | semmle.label | .byteSwapped | +| conversions.swift:159:12:159:34 | call to sourceUInt64(_:) | semmle.label | call to sourceUInt64(_:) | +| conversions.swift:159:12:159:36 | .byteSwapped | semmle.label | .byteSwapped | +| conversions.swift:160:12:160:31 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | +| conversions.swift:160:12:160:33 | .magnitude | semmle.label | .magnitude | +| conversions.swift:161:12:161:35 | call to sourceUInt64(_:) | semmle.label | call to sourceUInt64(_:) | +| conversions.swift:161:12:161:37 | .magnitude | semmle.label | .magnitude | | conversions.swift:165:12:165:35 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | | conversions.swift:166:12:166:43 | call to String.init(_:) | semmle.label | call to String.init(_:) | | conversions.swift:166:19:166:42 | call to sourceString(_:) | semmle.label | call to sourceString(_:) | @@ -331,6 +420,8 @@ nodes | conversions.swift:186:40:186:40 | parent | semmle.label | parent | | conversions.swift:187:12:187:12 | v3 | semmle.label | v3 | | conversions.swift:188:12:188:12 | v3 | semmle.label | v3 | +| conversions.swift:196:12:196:42 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:196:24:196:41 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | | conversions.swift:201:14:201:33 | call to sourceArray(_:) | semmle.label | call to sourceArray(_:) | | conversions.swift:202:14:202:33 | [...] [Collection element] | semmle.label | [...] [Collection element] | | conversions.swift:202:15:202:32 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | @@ -364,8 +455,12 @@ nodes | conversions.swift:229:7:229:12 | v | semmle.label | v | | conversions.swift:230:3:230:3 | [post] self [v] | semmle.label | [post] self [v] | | conversions.swift:230:12:230:12 | v | semmle.label | v | +| conversions.swift:235:2:239:2 | self[return] | semmle.label | self[return] | | conversions.swift:235:7:235:17 | withUInt | semmle.label | withUInt | | conversions.swift:236:13:236:13 | withUInt | semmle.label | withUInt | +| conversions.swift:237:10:237:22 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| conversions.swift:237:14:237:14 | withUInt | semmle.label | withUInt | +| conversions.swift:238:12:238:12 | self | semmle.label | self | | conversions.swift:241:7:241:20 | withMyValue [v] | semmle.label | withMyValue [v] | | conversions.swift:242:13:242:13 | withMyValue [v] | semmle.label | withMyValue [v] | | conversions.swift:242:13:242:25 | .v | semmle.label | .v | @@ -381,6 +476,7 @@ nodes | conversions.swift:255:13:255:25 | .v | semmle.label | .v | | conversions.swift:256:10:256:10 | withMyValue [v] | semmle.label | withMyValue [v] | | conversions.swift:256:10:256:22 | .v | semmle.label | .v | +| conversions.swift:262:12:262:44 | call to Int.init(withUInt:) | semmle.label | call to Int.init(withUInt:) | | conversions.swift:262:26:262:43 | call to sourceUInt(_:) | semmle.label | call to sourceUInt(_:) | | conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | semmle.label | call to MyValue.init(_:) [v] | | conversions.swift:265:37:265:53 | call to sourceInt(_:) | semmle.label | call to sourceInt(_:) | @@ -520,6 +616,7 @@ subpaths | conversions.swift:249:11:249:11 | withMyValue2 [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:249:11:249:24 | .v | | conversions.swift:255:13:255:13 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:255:13:255:25 | .v | | conversions.swift:256:10:256:10 | withMyValue [v] | conversions.swift:227:6:227:6 | self [v] | file://:0:0:0:0 | .v | conversions.swift:256:10:256:22 | .v | +| conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:235:7:235:17 | withUInt | conversions.swift:235:2:239:2 | self[return] | conversions.swift:262:12:262:44 | call to Int.init(withUInt:) | | conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | conversions.swift:229:2:231:2 | self[return] [v] | conversions.swift:265:29:265:54 | call to MyValue.init(_:) [v] | | conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | conversions.swift:247:7:247:21 | withMyValue2 [v] | conversions.swift:247:2:252:2 | self[return] | conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | | conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:229:7:229:12 | v | conversions.swift:229:2:231:2 | self[return] [v] | conversions.swift:268:30:268:55 | call to MyValue.init(_:) [v] | @@ -534,6 +631,16 @@ subpaths | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | .second | stringinterpolation.swift:31:21:31:24 | .second | #select | conversions.swift:32:12:32:31 | call to sourceInt(_:) | conversions.swift:32:12:32:31 | call to sourceInt(_:) | conversions.swift:32:12:32:31 | call to sourceInt(_:) | result | +| conversions.swift:33:12:33:36 | call to Self.init(_:) | conversions.swift:33:16:33:35 | call to sourceInt(_:) | conversions.swift:33:12:33:36 | call to Self.init(_:) | result | +| conversions.swift:34:12:34:37 | call to Self.init(_:) | conversions.swift:34:17:34:36 | call to sourceInt(_:) | conversions.swift:34:12:34:37 | call to Self.init(_:) | result | +| conversions.swift:35:12:35:38 | call to Self.init(_:) | conversions.swift:35:18:35:37 | call to sourceInt(_:) | conversions.swift:35:12:35:38 | call to Self.init(_:) | result | +| conversions.swift:36:12:36:38 | call to Self.init(_:) | conversions.swift:36:18:36:37 | call to sourceInt(_:) | conversions.swift:36:12:36:38 | call to Self.init(_:) | result | +| conversions.swift:37:12:37:38 | call to Self.init(_:) | conversions.swift:37:18:37:37 | call to sourceInt(_:) | conversions.swift:37:12:37:38 | call to Self.init(_:) | result | +| conversions.swift:39:12:39:37 | call to Self.init(_:) | conversions.swift:39:17:39:36 | call to sourceInt(_:) | conversions.swift:39:12:39:37 | call to Self.init(_:) | result | +| conversions.swift:40:12:40:38 | call to Self.init(_:) | conversions.swift:40:18:40:37 | call to sourceInt(_:) | conversions.swift:40:12:40:38 | call to Self.init(_:) | result | +| conversions.swift:41:12:41:40 | call to Self.init(_:) | conversions.swift:41:19:41:39 | call to sourceInt(_:) | conversions.swift:41:12:41:40 | call to Self.init(_:) | result | +| conversions.swift:42:12:42:40 | call to Self.init(_:) | conversions.swift:42:19:42:39 | call to sourceInt(_:) | conversions.swift:42:12:42:40 | call to Self.init(_:) | result | +| conversions.swift:43:12:43:40 | call to Self.init(_:) | conversions.swift:43:19:43:39 | call to sourceInt(_:) | conversions.swift:43:12:43:40 | call to Self.init(_:) | result | | conversions.swift:45:12:45:39 | call to Float.init(_:) | conversions.swift:45:18:45:38 | call to sourceInt(_:) | conversions.swift:45:12:45:39 | call to Float.init(_:) | result | | conversions.swift:46:12:46:40 | call to Double.init(_:) | conversions.swift:46:19:46:39 | call to sourceInt(_:) | conversions.swift:46:12:46:40 | call to Double.init(_:) | result | | conversions.swift:47:12:47:40 | call to String.init(_:) | conversions.swift:47:19:47:39 | call to sourceInt(_:) | conversions.swift:47:12:47:40 | call to String.init(_:) | result | @@ -547,7 +654,17 @@ subpaths | conversions.swift:59:13:59:13 | v | conversions.swift:58:13:58:32 | call to sourceInt(_:) | conversions.swift:59:13:59:13 | v | result | | conversions.swift:63:12:63:12 | v2 | conversions.swift:62:30:62:49 | call to sourceInt(_:) | conversions.swift:63:12:63:12 | v2 | result | | conversions.swift:66:12:66:12 | v4 | conversions.swift:65:31:65:50 | call to sourceInt(_:) | conversions.swift:66:12:66:12 | v4 | result | +| conversions.swift:69:12:69:12 | v5 | conversions.swift:68:36:68:55 | call to sourceInt(_:) | conversions.swift:69:12:69:12 | v5 | result | +| conversions.swift:72:12:72:12 | v6 | conversions.swift:71:28:71:47 | call to sourceInt(_:) | conversions.swift:72:12:72:12 | v6 | result | | conversions.swift:75:12:75:12 | v7 | conversions.swift:74:15:74:34 | call to sourceInt(_:) | conversions.swift:75:12:75:12 | v7 | result | +| conversions.swift:80:12:80:48 | call to advanced(by:) | conversions.swift:80:28:80:47 | call to sourceInt(_:) | conversions.swift:80:12:80:48 | call to advanced(by:) | result | +| conversions.swift:82:12:82:51 | call to distance(to:) | conversions.swift:82:28:82:50 | call to sourceUInt64(_:) | conversions.swift:82:12:82:51 | call to distance(to:) | result | +| conversions.swift:84:12:84:46 | ...! | conversions.swift:84:25:84:44 | call to sourceInt(_:) | conversions.swift:84:12:84:46 | ...! | result | +| conversions.swift:85:12:85:49 | ...! | conversions.swift:85:28:85:47 | call to sourceInt(_:) | conversions.swift:85:12:85:49 | ...! | result | +| conversions.swift:86:12:86:46 | call to Self.init(clamping:) | conversions.swift:86:26:86:45 | call to sourceInt(_:) | conversions.swift:86:12:86:46 | call to Self.init(clamping:) | result | +| conversions.swift:87:12:87:49 | call to Self.init(clamping:) | conversions.swift:87:29:87:48 | call to sourceInt(_:) | conversions.swift:87:12:87:49 | call to Self.init(clamping:) | result | +| conversions.swift:88:12:88:56 | call to Self.init(truncatingIfNeeded:) | conversions.swift:88:36:88:55 | call to sourceInt(_:) | conversions.swift:88:12:88:56 | call to Self.init(truncatingIfNeeded:) | result | +| conversions.swift:89:12:89:59 | call to Self.init(truncatingIfNeeded:) | conversions.swift:89:39:89:58 | call to sourceInt(_:) | conversions.swift:89:12:89:59 | call to Self.init(truncatingIfNeeded:) | result | | conversions.swift:90:12:90:51 | ...! | conversions.swift:90:16:90:38 | call to sourceString(_:) | conversions.swift:90:12:90:51 | ...! | result | | conversions.swift:91:12:91:54 | ...! | conversions.swift:91:19:91:41 | call to sourceString(_:) | conversions.swift:91:12:91:54 | ...! | result | | conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | conversions.swift:93:30:93:49 | call to sourceInt(_:) | conversions.swift:93:12:93:50 | call to Self.init(littleEndian:) | result | @@ -560,6 +677,7 @@ subpaths | conversions.swift:100:12:100:36 | .bigEndian | conversions.swift:100:12:100:34 | call to sourceUInt64(_:) | conversions.swift:100:12:100:36 | .bigEndian | result | | conversions.swift:136:12:136:33 | call to sourceFloat(_:) | conversions.swift:136:12:136:33 | call to sourceFloat(_:) | conversions.swift:136:12:136:33 | call to sourceFloat(_:) | result | | conversions.swift:137:12:137:40 | call to Float.init(_:) | conversions.swift:137:18:137:39 | call to sourceFloat(_:) | conversions.swift:137:12:137:40 | call to Float.init(_:) | result | +| conversions.swift:138:12:138:40 | call to UInt8.init(_:) | conversions.swift:138:18:138:39 | call to sourceFloat(_:) | conversions.swift:138:12:138:40 | call to UInt8.init(_:) | result | | conversions.swift:139:12:139:41 | call to String.init(_:) | conversions.swift:139:19:139:40 | call to sourceFloat(_:) | conversions.swift:139:12:139:41 | call to String.init(_:) | result | | conversions.swift:140:12:140:43 | .utf8 | conversions.swift:140:19:140:40 | call to sourceFloat(_:) | conversions.swift:140:12:140:43 | .utf8 | result | | conversions.swift:141:12:141:43 | call to String.init(_:) | conversions.swift:141:19:141:42 | call to sourceFloat80(_:) | conversions.swift:141:12:141:43 | call to String.init(_:) | result | @@ -576,6 +694,10 @@ subpaths | conversions.swift:155:12:155:37 | .significand | conversions.swift:155:12:155:35 | call to sourceFloat80(_:) | conversions.swift:155:12:155:37 | .significand | result | | conversions.swift:156:12:156:36 | .exponent | conversions.swift:156:12:156:34 | call to sourceDouble(_:) | conversions.swift:156:12:156:36 | .exponent | result | | conversions.swift:157:12:157:36 | .significand | conversions.swift:157:12:157:34 | call to sourceDouble(_:) | conversions.swift:157:12:157:36 | .significand | result | +| conversions.swift:158:12:158:34 | .byteSwapped | conversions.swift:158:12:158:32 | call to sourceUInt(_:) | conversions.swift:158:12:158:34 | .byteSwapped | result | +| conversions.swift:159:12:159:36 | .byteSwapped | conversions.swift:159:12:159:34 | call to sourceUInt64(_:) | conversions.swift:159:12:159:36 | .byteSwapped | result | +| conversions.swift:160:12:160:33 | .magnitude | conversions.swift:160:12:160:31 | call to sourceInt(_:) | conversions.swift:160:12:160:33 | .magnitude | result | +| conversions.swift:161:12:161:37 | .magnitude | conversions.swift:161:12:161:35 | call to sourceUInt64(_:) | conversions.swift:161:12:161:37 | .magnitude | result | | conversions.swift:165:12:165:35 | call to sourceString(_:) | conversions.swift:165:12:165:35 | call to sourceString(_:) | conversions.swift:165:12:165:35 | call to sourceString(_:) | result | | conversions.swift:166:12:166:43 | call to String.init(_:) | conversions.swift:166:19:166:42 | call to sourceString(_:) | conversions.swift:166:12:166:43 | call to String.init(_:) | result | | conversions.swift:175:12:175:12 | ms2 | conversions.swift:174:21:174:44 | call to sourceString(_:) | conversions.swift:175:12:175:12 | ms2 | result | @@ -585,6 +707,7 @@ subpaths | conversions.swift:184:12:184:12 | parent | conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:184:12:184:12 | parent | result | | conversions.swift:187:12:187:12 | v3 | conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:187:12:187:12 | v3 | result | | conversions.swift:188:12:188:12 | v3 | conversions.swift:182:31:182:54 | call to sourceString(_:) | conversions.swift:188:12:188:12 | v3 | result | +| conversions.swift:196:12:196:42 | call to Self.init(_:) | conversions.swift:196:24:196:41 | call to sourceInt(_:) | conversions.swift:196:12:196:42 | call to Self.init(_:) | result | | conversions.swift:203:13:203:13 | arr1 | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:203:13:203:13 | arr1 | result | | conversions.swift:204:13:204:13 | arr2 | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:204:13:204:13 | arr2 | result | | conversions.swift:205:13:205:19 | ...[...] | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:205:13:205:19 | ...[...] | result | @@ -598,10 +721,12 @@ subpaths | conversions.swift:219:13:219:20 | ...[...] | conversions.swift:201:14:201:33 | call to sourceArray(_:) | conversions.swift:219:13:219:20 | ...[...] | result | | conversions.swift:220:13:220:20 | ...[...] | conversions.swift:202:15:202:32 | call to sourceInt(_:) | conversions.swift:220:13:220:20 | ...[...] | result | | conversions.swift:236:13:236:13 | withUInt | conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:236:13:236:13 | withUInt | result | +| conversions.swift:238:12:238:12 | self | conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:238:12:238:12 | self | result | | conversions.swift:242:13:242:25 | .v | conversions.swift:265:37:265:53 | call to sourceInt(_:) | conversions.swift:242:13:242:25 | .v | result | | conversions.swift:248:13:248:26 | .v | conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:248:13:248:26 | .v | result | | conversions.swift:251:12:251:12 | self | conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:251:12:251:12 | self | result | | conversions.swift:255:13:255:25 | .v | conversions.swift:271:43:271:59 | call to sourceInt(_:) | conversions.swift:255:13:255:25 | .v | result | +| conversions.swift:262:12:262:44 | call to Int.init(withUInt:) | conversions.swift:262:26:262:43 | call to sourceUInt(_:) | conversions.swift:262:12:262:44 | call to Int.init(withUInt:) | result | | conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | conversions.swift:268:38:268:54 | call to sourceInt(_:) | conversions.swift:268:12:268:56 | call to Int.init(withMyValue2:) | result | | conversions.swift:271:12:271:61 | call to mkInt(withMyValue:) | conversions.swift:271:43:271:59 | call to sourceInt(_:) | conversions.swift:271:12:271:61 | call to mkInt(withMyValue:) | result | | simple.swift:12:13:12:24 | ... .+(_:_:) ... | simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | result | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected index 0be7309f857d..8ec8033d086e 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/TaintInline.expected @@ -1,30 +1,2 @@ testFailures -| conversions.swift:33:39:34:1 | // $ tainted=conv1-2\n | Missing result: tainted=conv1-2 | -| conversions.swift:34:40:35:1 | // $ tainted=conv1-3\n | Missing result: tainted=conv1-3 | -| conversions.swift:35:41:36:1 | // $ tainted=conv1-4\n | Missing result: tainted=conv1-4 | -| conversions.swift:36:41:37:1 | // $ tainted=conv1-5\n | Missing result: tainted=conv1-5 | -| conversions.swift:37:41:38:1 | // $ tainted=conv1-6\n | Missing result: tainted=conv1-6 | -| conversions.swift:39:40:40:1 | // $ tainted=conv1-8\n | Missing result: tainted=conv1-8 | -| conversions.swift:40:41:41:1 | // $ tainted=conv1-9\n | Missing result: tainted=conv1-9 | -| conversions.swift:41:43:42:1 | // $ tainted=conv1-10\n | Missing result: tainted=conv1-10 | -| conversions.swift:42:43:43:1 | // $ tainted=conv1-11\n | Missing result: tainted=conv1-11 | -| conversions.swift:43:43:44:1 | // $ tainted=conv1-12\n | Missing result: tainted=conv1-12 | -| conversions.swift:69:16:70:1 | // $ tainted=conv3-4\n | Missing result: tainted=conv3-4 | -| conversions.swift:72:16:73:1 | // $ tainted=conv3-5\n | Missing result: tainted=conv3-5 | -| conversions.swift:80:51:81:1 | // $ tainted=conv3-7\n | Missing result: tainted=conv3-7 | -| conversions.swift:82:54:83:1 | // $ tainted=conv3-8\n | Missing result: tainted=conv3-8 | -| conversions.swift:84:49:85:1 | // $ tainted=conv4-1\n | Missing result: tainted=conv4-1 | -| conversions.swift:85:52:86:1 | // $ tainted=conv4-2\n | Missing result: tainted=conv4-2 | -| conversions.swift:86:49:87:1 | // $ tainted=conv4-3\n | Missing result: tainted=conv4-3 | -| conversions.swift:87:52:88:1 | // $ tainted=conv4-4\n | Missing result: tainted=conv4-4 | -| conversions.swift:88:59:89:1 | // $ tainted=conv4-5\n | Missing result: tainted=conv4-5 | -| conversions.swift:89:62:90:1 | // $ tainted=conv4-6\n | Missing result: tainted=conv4-6 | -| conversions.swift:138:43:139:1 | // $ tainted=conv7-3\n | Missing result: tainted=conv7-3 | -| conversions.swift:158:47:159:1 | // $ tainted=conv9-7\n | Missing result: tainted=conv9-7 | -| conversions.swift:159:49:160:1 | // $ tainted=conv9-8\n | Missing result: tainted=conv9-8 | -| conversions.swift:160:44:161:1 | // $ tainted=conv9-9\n | Missing result: tainted=conv9-9 | -| conversions.swift:161:48:162:1 | // $ tainted=conv9-10\n | Missing result: tainted=conv9-10 | -| conversions.swift:196:45:197:1 | // $ tainted=cenum\n | Missing result: tainted=cenum | -| conversions.swift:238:18:239:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | -| conversions.swift:262:47:263:1 | // $ tainted=ext1\n | Missing result: tainted=ext1 | failures From 6aa43e001dd8b4cfd0b0794836b43d15c3ce6609 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 14 Nov 2024 17:24:42 +0000 Subject: [PATCH 4/7] Swift: Effect on other tests. --- .../taint/libraries/TaintInline.expected | 1 - .../Security/CWE-089/SqlInjection.expected | 14 ++++ .../Security/CWE-094/UnsafeJsEval.expected | 23 +++++++ .../CWE-134/UncontrolledFormatString.expected | 21 ++++++ .../CWE-259/ConstantPassword.expected | 25 +++++++ .../Security/CWE-611/XXETest.expected | 16 ----- .../Security/CWE-760/ConstantSalt.expected | 67 +++++++++++++++++++ 7 files changed, 150 insertions(+), 17 deletions(-) diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected b/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected index bbe166c67ca4..5fcb458d4fc5 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/TaintInline.expected @@ -2,5 +2,4 @@ testFailures | optionset.swift:60:49:61:1 | // $ tainted=60\n | Missing result: tainted=60 | | optionset.swift:65:58:66:1 | // $ tainted=65\n | Missing result: tainted=65 | | string.swift:599:35:600:1 | // $ tainted=599\n | Missing result: tainted=599 | -| string.swift:605:30:606:1 | // $ tainted=605\n | Missing result: tainted=605 | failures diff --git a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index 36ebcd04a6ee..9824b5c8e178 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -82,6 +82,7 @@ edges | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:349:84:349:84 | remoteString | provenance | | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:350:69:350:69 | remoteString | provenance | | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:351:84:351:84 | remoteString | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:63:25:63:25 | remoteString | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | provenance | | @@ -97,6 +98,8 @@ edges | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:117:16:117:16 | unsafeQuery1 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:119:16:119:16 | unsafeQuery1 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:132:20:132:20 | remoteString | provenance | | +| SQLite.swift:63:21:63:37 | call to Self.init(_:) | SQLite.swift:77:17:77:17 | safeQuery2 | provenance | | +| SQLite.swift:63:25:63:25 | remoteString | SQLite.swift:63:21:63:37 | call to Self.init(_:) | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:50:22:50:22 | remoteString | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:52:14:52:14 | remoteString | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:53:14:53:14 | remoteString | provenance | | @@ -104,6 +107,7 @@ edges | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:55:14:55:14 | remoteString | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:57:16:57:16 | remoteString | provenance | | | other.swift:54:31:54:31 | remoteString | other.swift:54:14:54:43 | call to NSString.init(string:) | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:123:25:123:25 | remoteString | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | provenance | | @@ -111,6 +115,8 @@ edges | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | provenance | | +| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | provenance | | +| sqlite3_c_api.swift:123:25:123:25 | remoteString | sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | provenance | | | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | provenance | | | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | sqlite3_c_api.swift:190:2:190:2 | data | provenance | | | sqlite3_c_api.swift:190:2:190:2 | data | sqlite3_c_api.swift:190:21:190:21 | [post] buffer | provenance | | @@ -214,9 +220,12 @@ nodes | GRDB.swift:350:69:350:69 | remoteString | semmle.label | remoteString | | GRDB.swift:351:84:351:84 | remoteString | semmle.label | remoteString | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| SQLite.swift:63:21:63:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| SQLite.swift:63:25:63:25 | remoteString | semmle.label | remoteString | | SQLite.swift:73:17:73:17 | unsafeQuery1 | semmle.label | unsafeQuery1 | | SQLite.swift:74:17:74:17 | unsafeQuery2 | semmle.label | unsafeQuery2 | | SQLite.swift:75:17:75:17 | unsafeQuery3 | semmle.label | unsafeQuery3 | +| SQLite.swift:77:17:77:17 | safeQuery2 | semmle.label | safeQuery2 | | SQLite.swift:83:29:83:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | SQLite.swift:95:32:95:32 | remoteString | semmle.label | remoteString | | SQLite.swift:100:29:100:29 | unsafeQuery1 | semmle.label | unsafeQuery1 | @@ -238,9 +247,12 @@ nodes | other.swift:55:14:55:14 | remoteString | semmle.label | remoteString | | other.swift:57:16:57:16 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| sqlite3_c_api.swift:123:25:123:25 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | semmle.label | unsafeQuery1 | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | semmle.label | unsafeQuery2 | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | semmle.label | unsafeQuery3 | +| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | semmle.label | safeQuery2 | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | @@ -339,6 +351,7 @@ subpaths | SQLite.swift:73:17:73:17 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:74:17:74:17 | unsafeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:75:17:75:17 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | +| SQLite.swift:77:17:77:17 | safeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:77:17:77:17 | safeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:83:29:83:29 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:83:29:83:29 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:95:32:95:32 | remoteString | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:95:32:95:32 | remoteString | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:100:29:100:29 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:100:29:100:29 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | @@ -360,6 +373,7 @@ subpaths | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | +| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected index cfd68d818efc..64a65dd1a54d 100644 --- a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected +++ b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected @@ -30,6 +30,17 @@ edges | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | | UnsafeJsEval.swift:214:24:214:24 | remoteData | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | provenance | | +| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:265:13:265:13 | string | provenance | | +| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:268:13:268:13 | string | provenance | | +| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:276:13:276:13 | string | provenance | | +| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:279:13:279:13 | string | provenance | | +| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | +| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | +| UnsafeJsEval.swift:217:24:217:70 | call to String.init(_:) | UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | provenance | | +| UnsafeJsEval.swift:217:31:217:64 | call to Self.init(_:) | UnsafeJsEval.swift:217:31:217:69 | ... ??(_:_:) ... | provenance | | +| UnsafeJsEval.swift:217:31:217:69 | ... ??(_:_:) ... | UnsafeJsEval.swift:217:24:217:70 | call to String.init(_:) | provenance | | +| UnsafeJsEval.swift:217:35:217:63 | try! ... | UnsafeJsEval.swift:217:31:217:64 | call to Self.init(_:) | provenance | | +| UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:217:35:217:63 | try! ... | provenance | | | UnsafeJsEval.swift:265:13:265:13 | string | UnsafeJsEval.swift:266:43:266:43 | string | provenance | | | UnsafeJsEval.swift:266:43:266:43 | string | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | provenance | | | UnsafeJsEval.swift:268:13:268:13 | string | UnsafeJsEval.swift:269:43:269:43 | string | provenance | | @@ -63,6 +74,12 @@ nodes | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | semmle.label | call to String.init(decoding:as:) | | UnsafeJsEval.swift:214:24:214:24 | remoteData | semmle.label | remoteData | +| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | +| UnsafeJsEval.swift:217:24:217:70 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| UnsafeJsEval.swift:217:31:217:64 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| UnsafeJsEval.swift:217:31:217:69 | ... ??(_:_:) ... | semmle.label | ... ??(_:_:) ... | +| UnsafeJsEval.swift:217:35:217:63 | try! ... | semmle.label | try! ... | +| UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | UnsafeJsEval.swift:265:13:265:13 | string | semmle.label | string | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | semmle.label | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | | UnsafeJsEval.swift:266:43:266:43 | string | semmle.label | string | @@ -97,24 +114,30 @@ subpaths | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | +| UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | +| UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | +| UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | +| UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | +| UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | +| UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:320:44:320:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:318:24:318:87 | call to String.init(contentsOf:) | UnsafeJsEval.swift:320:44:320:74 | ... .+(_:_:) ... | Evaluation of uncontrolled JavaScript from a remote source. | diff --git a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected index 94dd27a82c2f..43a8b08c7ead 100644 --- a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected +++ b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected @@ -18,6 +18,8 @@ edges | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:118:61:118:61 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:120:26:120:26 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:124:27:124:27 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:130:39:130:39 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:135:37:135:37 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:139:5:139:5 | tainted | provenance | | @@ -28,6 +30,14 @@ edges | UncontrolledFormatString.swift:111:50:111:50 | tainted | UncontrolledFormatString.swift:111:33:111:57 | call to NSString.init(string:) | provenance | | | UncontrolledFormatString.swift:112:64:112:64 | tainted | UncontrolledFormatString.swift:112:47:112:71 | call to NSString.init(string:) | provenance | | | UncontrolledFormatString.swift:116:11:116:11 | tainted | UncontrolledFormatString.swift:77:12:77:22 | format | provenance | | +| UncontrolledFormatString.swift:120:22:120:33 | call to Self.init(_:) | UncontrolledFormatString.swift:122:24:122:24 | taintedSan | provenance | | +| UncontrolledFormatString.swift:120:26:120:26 | tainted | UncontrolledFormatString.swift:120:22:120:33 | call to Self.init(_:) | provenance | | +| UncontrolledFormatString.swift:124:23:124:34 | call to Self.init(_:) | UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | provenance | | +| UncontrolledFormatString.swift:124:27:124:27 | tainted | UncontrolledFormatString.swift:124:23:124:34 | call to Self.init(_:) | provenance | | +| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) | UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | provenance | | +| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) [Collection element] | UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | provenance | | +| UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) | provenance | | +| UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) [Collection element] | provenance | | | UncontrolledFormatString.swift:135:37:135:37 | tainted | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | provenance | | | UncontrolledFormatString.swift:139:5:139:5 | tainted | UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | provenance | | | UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:141:24:141:24 | cstr | provenance | | @@ -60,6 +70,15 @@ nodes | UncontrolledFormatString.swift:116:11:116:11 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:116:11:116:11 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:118:61:118:61 | tainted | semmle.label | tainted | +| UncontrolledFormatString.swift:120:22:120:33 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| UncontrolledFormatString.swift:120:26:120:26 | tainted | semmle.label | tainted | +| UncontrolledFormatString.swift:122:24:122:24 | taintedSan | semmle.label | taintedSan | +| UncontrolledFormatString.swift:124:23:124:34 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | +| UncontrolledFormatString.swift:124:27:124:27 | tainted | semmle.label | tainted | +| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) [Collection element] | semmle.label | call to String.init(_:) [Collection element] | +| UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | semmle.label | taintedVal2 | +| UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | semmle.label | taintedSan2 | | UncontrolledFormatString.swift:130:39:130:39 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | semmle.label | call to NSString.init(string:) | | UncontrolledFormatString.swift:135:37:135:37 | tainted | semmle.label | tainted | @@ -88,6 +107,8 @@ subpaths | UncontrolledFormatString.swift:115:11:115:11 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:115:11:115:11 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:116:11:116:11 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:118:61:118:61 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:118:61:118:61 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | +| UncontrolledFormatString.swift:122:24:122:24 | taintedSan | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:122:24:122:24 | taintedSan | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | +| UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:130:39:130:39 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:130:39:130:39 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:141:24:141:24 | cstr | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:141:24:141:24 | cstr | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected b/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected index 0c1e98bfe7c6..640286de0ca8 100644 --- a/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected +++ b/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected @@ -1,4 +1,17 @@ edges +| rncryptor.swift:60:9:60:65 | call to String.init(_:) | rncryptor.swift:68:25:68:44 | call to getARandomPassword() | provenance | | +| rncryptor.swift:60:9:60:65 | call to String.init(_:) [Collection element] | rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | provenance | | +| rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:60:16:60:64 | call to map(_:) | provenance | | +| rncryptor.swift:60:16:60:64 | call to map(_:) | rncryptor.swift:60:9:60:65 | call to String.init(_:) | provenance | | +| rncryptor.swift:60:16:60:64 | call to map(_:) | rncryptor.swift:60:9:60:65 | call to String.init(_:) [Collection element] | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:74:89:74:89 | myRandomPassword | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:75:56:75:56 | myRandomPassword | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:80:89:80:89 | myMaybePassword | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:81:56:81:56 | myMaybePassword | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:74:89:74:89 | myRandomPassword | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:75:56:75:56 | myRandomPassword | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:80:89:80:89 | myMaybePassword | provenance | | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:81:56:81:56 | myMaybePassword | provenance | | | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:77:89:77:89 | myConstPassword | provenance | | | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:78:56:78:56 | myConstPassword | provenance | | | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:80:89:80:89 | myMaybePassword | provenance | | @@ -30,7 +43,15 @@ edges | test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:63:40:63:40 | constantStringPassword | provenance | | | test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:68:34:68:34 | constantStringPassword | provenance | | nodes +| rncryptor.swift:60:9:60:65 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| rncryptor.swift:60:9:60:65 | call to String.init(_:) [Collection element] | semmle.label | call to String.init(_:) [Collection element] | +| rncryptor.swift:60:16:60:16 | ............ | semmle.label | ............ | +| rncryptor.swift:60:16:60:64 | call to map(_:) | semmle.label | call to map(_:) | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | semmle.label | call to getARandomPassword() | +| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | semmle.label | call to getARandomPassword() [Collection element] | | rncryptor.swift:69:24:69:24 | abc123 | semmle.label | abc123 | +| rncryptor.swift:74:89:74:89 | myRandomPassword | semmle.label | myRandomPassword | +| rncryptor.swift:75:56:75:56 | myRandomPassword | semmle.label | myRandomPassword | | rncryptor.swift:77:89:77:89 | myConstPassword | semmle.label | myConstPassword | | rncryptor.swift:78:56:78:56 | myConstPassword | semmle.label | myConstPassword | | rncryptor.swift:80:89:80:89 | myMaybePassword | semmle.label | myMaybePassword | @@ -65,9 +86,13 @@ nodes | test.swift:68:34:68:34 | constantStringPassword | semmle.label | constantStringPassword | subpaths #select +| rncryptor.swift:74:89:74:89 | myRandomPassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:74:89:74:89 | myRandomPassword | The value '............' is used as a constant password. | +| rncryptor.swift:75:56:75:56 | myRandomPassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:75:56:75:56 | myRandomPassword | The value '............' is used as a constant password. | | rncryptor.swift:77:89:77:89 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:77:89:77:89 | myConstPassword | The value 'abc123' is used as a constant password. | | rncryptor.swift:78:56:78:56 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:78:56:78:56 | myConstPassword | The value 'abc123' is used as a constant password. | +| rncryptor.swift:80:89:80:89 | myMaybePassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:80:89:80:89 | myMaybePassword | The value '............' is used as a constant password. | | rncryptor.swift:80:89:80:89 | myMaybePassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:80:89:80:89 | myMaybePassword | The value 'abc123' is used as a constant password. | +| rncryptor.swift:81:56:81:56 | myMaybePassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:81:56:81:56 | myMaybePassword | The value '............' is used as a constant password. | | rncryptor.swift:81:56:81:56 | myMaybePassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:81:56:81:56 | myMaybePassword | The value 'abc123' is used as a constant password. | | rncryptor.swift:91:39:91:39 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:91:39:91:39 | myConstPassword | The value 'abc123' is used as a constant password. | | rncryptor.swift:92:37:92:37 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:92:37:92:37 | myConstPassword | The value 'abc123' is used as a constant password. | diff --git a/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected b/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected index 213ece4f9ad0..8ec8033d086e 100644 --- a/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected +++ b/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected @@ -1,18 +1,2 @@ testFailures -| testLibxmlXXE.swift:101:78:102:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:102:80:103:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:103:107:104:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:104:82:105:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:106:78:107:1 | // $ hasXXE=95\n | Missing result: hasXXE=95 | -| testLibxmlXXE.swift:107:80:108:1 | // $ hasXXE=95\n | Missing result: hasXXE=95 | -| testLibxmlXXE.swift:109:87:110:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:110:89:111:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:112:99:113:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:113:97:114:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:115:87:116:1 | // $ hasXXE=95\n | Missing result: hasXXE=95 | -| testLibxmlXXE.swift:116:89:117:1 | // $ hasXXE=95\n | Missing result: hasXXE=95 | -| testLibxmlXXE.swift:118:89:119:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:119:91:120:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:121:98:122:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | -| testLibxmlXXE.swift:122:100:123:1 | // $ hasXXE=96\n | Missing result: hasXXE=96 | failures diff --git a/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected b/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected index 002454a3021d..93d06372be46 100644 --- a/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected +++ b/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected @@ -1,4 +1,28 @@ edges +| rncryptor.swift:47:9:47:69 | call to String.init(_:) | rncryptor.swift:57:27:57:44 | call to getARandomString() | provenance | | +| rncryptor.swift:47:9:47:69 | call to String.init(_:) | rncryptor.swift:58:27:58:44 | call to getARandomString() | provenance | | +| rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:47:16:47:68 | call to map(_:) | provenance | | +| rncryptor.swift:47:16:47:68 | call to map(_:) | rncryptor.swift:47:9:47:69 | call to String.init(_:) | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:62:57:62:57 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:67:106:67:106 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:69:106:69:106 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:70:106:70:106 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:72:106:72:106 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:74:127:74:127 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:76:127:76:127 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:77:135:77:135 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:79:135:79:135 | myRandomSalt1 | provenance | | +| rncryptor.swift:57:27:57:44 | call to getARandomString() | rncryptor.swift:57:22:57:45 | call to Data.init(_:) | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:64:55:64:55 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:67:131:67:131 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:68:133:68:133 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:70:131:70:131 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:71:133:71:133 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:74:152:74:152 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:75:154:75:154 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:77:160:77:160 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:78:162:78:162 | myRandomSalt2 | provenance | | +| rncryptor.swift:58:27:58:44 | call to getARandomString() | rncryptor.swift:58:22:58:45 | call to Data.init(_:) | provenance | | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:63:57:63:57 | myConstantSalt1 | provenance | | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:68:106:68:106 | myConstantSalt1 | provenance | | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:71:106:71:106 | myConstantSalt1 | provenance | | @@ -24,19 +48,44 @@ edges | test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:63:59:63:59 | constantStringSalt | provenance | | | test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:68:53:68:53 | constantStringSalt | provenance | | nodes +| rncryptor.swift:47:9:47:69 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| rncryptor.swift:47:16:47:16 | ................ | semmle.label | ................ | +| rncryptor.swift:47:16:47:68 | call to map(_:) | semmle.label | call to map(_:) | +| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| rncryptor.swift:57:27:57:44 | call to getARandomString() | semmle.label | call to getARandomString() | +| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| rncryptor.swift:58:27:58:44 | call to getARandomString() | semmle.label | call to getARandomString() | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | rncryptor.swift:59:29:59:29 | abcdef123456 | semmle.label | abcdef123456 | | rncryptor.swift:60:24:60:30 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | rncryptor.swift:60:29:60:29 | 0 | semmle.label | 0 | +| rncryptor.swift:62:57:62:57 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:63:57:63:57 | myConstantSalt1 | semmle.label | myConstantSalt1 | +| rncryptor.swift:64:55:64:55 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:65:55:65:55 | myConstantSalt2 | semmle.label | myConstantSalt2 | +| rncryptor.swift:67:106:67:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | +| rncryptor.swift:67:131:67:131 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:68:106:68:106 | myConstantSalt1 | semmle.label | myConstantSalt1 | +| rncryptor.swift:68:133:68:133 | myRandomSalt2 | semmle.label | myRandomSalt2 | +| rncryptor.swift:69:106:69:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:69:131:69:131 | myConstantSalt2 | semmle.label | myConstantSalt2 | +| rncryptor.swift:70:106:70:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | +| rncryptor.swift:70:131:70:131 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:71:106:71:106 | myConstantSalt1 | semmle.label | myConstantSalt1 | +| rncryptor.swift:71:133:71:133 | myRandomSalt2 | semmle.label | myRandomSalt2 | +| rncryptor.swift:72:106:72:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:72:131:72:131 | myConstantSalt2 | semmle.label | myConstantSalt2 | +| rncryptor.swift:74:127:74:127 | myRandomSalt1 | semmle.label | myRandomSalt1 | +| rncryptor.swift:74:152:74:152 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:75:127:75:127 | myConstantSalt1 | semmle.label | myConstantSalt1 | +| rncryptor.swift:75:154:75:154 | myRandomSalt2 | semmle.label | myRandomSalt2 | +| rncryptor.swift:76:127:76:127 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:76:152:76:152 | myConstantSalt2 | semmle.label | myConstantSalt2 | +| rncryptor.swift:77:135:77:135 | myRandomSalt1 | semmle.label | myRandomSalt1 | +| rncryptor.swift:77:160:77:160 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:78:135:78:135 | myConstantSalt1 | semmle.label | myConstantSalt1 | +| rncryptor.swift:78:162:78:162 | myRandomSalt2 | semmle.label | myRandomSalt2 | +| rncryptor.swift:79:135:79:135 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:79:160:79:160 | myConstantSalt2 | semmle.label | myConstantSalt2 | | test.swift:29:3:29:3 | this string is constant | semmle.label | this string is constant | | test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | @@ -54,15 +103,33 @@ nodes | test.swift:68:53:68:53 | constantStringSalt | semmle.label | constantStringSalt | subpaths #select +| rncryptor.swift:62:57:62:57 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:62:57:62:57 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:63:57:63:57 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:63:57:63:57 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | +| rncryptor.swift:64:55:64:55 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:64:55:64:55 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:65:55:65:55 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:65:55:65:55 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | +| rncryptor.swift:67:106:67:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:67:106:67:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:67:131:67:131 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:67:131:67:131 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:68:106:68:106 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:68:106:68:106 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | +| rncryptor.swift:68:133:68:133 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:68:133:68:133 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:69:106:69:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:69:106:69:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:69:131:69:131 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:69:131:69:131 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | +| rncryptor.swift:70:106:70:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:70:106:70:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:70:131:70:131 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:70:131:70:131 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:71:106:71:106 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:71:106:71:106 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | +| rncryptor.swift:71:133:71:133 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:71:133:71:133 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:72:106:72:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:72:106:72:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:72:131:72:131 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:72:131:72:131 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | +| rncryptor.swift:74:127:74:127 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:74:127:74:127 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:74:152:74:152 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:74:152:74:152 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:75:127:75:127 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:75:127:75:127 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | +| rncryptor.swift:75:154:75:154 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:75:154:75:154 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:76:127:76:127 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:76:127:76:127 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:76:152:76:152 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:76:152:76:152 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | +| rncryptor.swift:77:135:77:135 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:77:135:77:135 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:77:160:77:160 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:77:160:77:160 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:78:135:78:135 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:78:135:78:135 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | +| rncryptor.swift:78:162:78:162 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:78:162:78:162 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | +| rncryptor.swift:79:135:79:135 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:79:135:79:135 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:79:160:79:160 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:79:160:79:160 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | | test.swift:51:49:51:49 | constantSalt | test.swift:43:35:43:130 | [...] | test.swift:51:49:51:49 | constantSalt | The value $@ is used as a constant, which is insecure for hashing passwords. | test.swift:43:35:43:130 | [...] | [...] | | test.swift:52:49:52:49 | constantStringSalt | test.swift:29:3:29:3 | this string is constant | test.swift:52:49:52:49 | constantStringSalt | The value $@ is used as a constant, which is insecure for hashing passwords. | test.swift:29:3:29:3 | this string is constant | this string is constant | From e589b1fcd059bca1c7f075b4722a610000d25caa Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 14 Nov 2024 17:37:43 +0000 Subject: [PATCH 5/7] Swift: Fix query barriers. --- .../security/CommandInjectionExtensions.qll | 2 +- .../security/PredicateInjectionExtensions.qll | 2 +- .../swift/security/SqlInjectionExtensions.qll | 2 +- .../UncontrolledFormatStringExtensions.qll | 2 +- .../swift/security/UnsafeJsEvalExtensions.qll | 2 +- .../swift/security/UnsafeUnpackExtensions.qll | 2 +- .../regex/RegexInjectionExtensions.qll | 2 +- .../Security/CWE-089/SqlInjection.expected | 14 ----------- .../Security/CWE-094/UnsafeJsEval.expected | 23 ------------------- .../CWE-134/UncontrolledFormatString.expected | 21 ----------------- 10 files changed, 7 insertions(+), 65 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index b1fd734440b5..55391bd3378d 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -63,6 +63,6 @@ private class CommandInjectionSinks extends SinkModelCsv { private class CommandInjectionDefaultBarrier extends CommandInjectionBarrier { CommandInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll index 9e5a8a8e57b8..1ff8b97a281a 100644 --- a/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll @@ -46,6 +46,6 @@ private class PredicateInjectionSinkCsv extends SinkModelCsv { private class PredicateInjectionDefaultBarrier extends PredicateInjectionBarrier { PredicateInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll index 1437e67dc21e..0ecc24a178ed 100644 --- a/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll @@ -190,6 +190,6 @@ private class DefaultSqlInjectionSink extends SqlInjectionSink { private class SqlInjectionDefaultBarrier extends SqlInjectionBarrier { SqlInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll b/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll index b114f72f215f..eb44f6894b94 100644 --- a/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll @@ -94,6 +94,6 @@ class HeuristicUncontrolledFormatStringSink extends UncontrolledFormatStringSink private class UncontrolledFormatStringDefaultBarrier extends UncontrolledFormatStringBarrier { UncontrolledFormatStringDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll index 3eb65e6460f4..923449f4d739 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll @@ -127,6 +127,6 @@ private class DefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { private class UnsafeJsEvalDefaultBarrier extends UnsafeJsEvalBarrier { UnsafeJsEvalDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll b/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll index c102aa40a1ef..1df4a06417b5 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll @@ -73,6 +73,6 @@ private class UnsafeUnpackAdditionalDataFlowStep extends UnsafeUnpackAdditionalF private class UnsafeUnpackDefaultBarrier extends UnsafeUnpackBarrier { UnsafeUnpackDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll index d95bcc212bf5..09c4641cbf01 100644 --- a/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll @@ -64,6 +64,6 @@ private class RegexInjectionSinks extends SinkModelCsv { private class RegexInjectionDefaultBarrier extends RegexInjectionBarrier { RegexInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = "Numeric" + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index 9824b5c8e178..36ebcd04a6ee 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -82,7 +82,6 @@ edges | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:349:84:349:84 | remoteString | provenance | | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:350:69:350:69 | remoteString | provenance | | | GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:351:84:351:84 | remoteString | provenance | | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:63:25:63:25 | remoteString | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | provenance | | @@ -98,8 +97,6 @@ edges | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:117:16:117:16 | unsafeQuery1 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:119:16:119:16 | unsafeQuery1 | provenance | | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:132:20:132:20 | remoteString | provenance | | -| SQLite.swift:63:21:63:37 | call to Self.init(_:) | SQLite.swift:77:17:77:17 | safeQuery2 | provenance | | -| SQLite.swift:63:25:63:25 | remoteString | SQLite.swift:63:21:63:37 | call to Self.init(_:) | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:50:22:50:22 | remoteString | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:52:14:52:14 | remoteString | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:53:14:53:14 | remoteString | provenance | | @@ -107,7 +104,6 @@ edges | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:55:14:55:14 | remoteString | provenance | | | other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:57:16:57:16 | remoteString | provenance | | | other.swift:54:31:54:31 | remoteString | other.swift:54:14:54:43 | call to NSString.init(string:) | provenance | | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:123:25:123:25 | remoteString | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | provenance | | @@ -115,8 +111,6 @@ edges | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | provenance | | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | provenance | | -| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | provenance | | -| sqlite3_c_api.swift:123:25:123:25 | remoteString | sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | provenance | | | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | provenance | | | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | sqlite3_c_api.swift:190:2:190:2 | data | provenance | | | sqlite3_c_api.swift:190:2:190:2 | data | sqlite3_c_api.swift:190:21:190:21 | [post] buffer | provenance | | @@ -220,12 +214,9 @@ nodes | GRDB.swift:350:69:350:69 | remoteString | semmle.label | remoteString | | GRDB.swift:351:84:351:84 | remoteString | semmle.label | remoteString | | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | -| SQLite.swift:63:21:63:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| SQLite.swift:63:25:63:25 | remoteString | semmle.label | remoteString | | SQLite.swift:73:17:73:17 | unsafeQuery1 | semmle.label | unsafeQuery1 | | SQLite.swift:74:17:74:17 | unsafeQuery2 | semmle.label | unsafeQuery2 | | SQLite.swift:75:17:75:17 | unsafeQuery3 | semmle.label | unsafeQuery3 | -| SQLite.swift:77:17:77:17 | safeQuery2 | semmle.label | safeQuery2 | | SQLite.swift:83:29:83:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | SQLite.swift:95:32:95:32 | remoteString | semmle.label | remoteString | | SQLite.swift:100:29:100:29 | unsafeQuery1 | semmle.label | unsafeQuery1 | @@ -247,12 +238,9 @@ nodes | other.swift:55:14:55:14 | remoteString | semmle.label | remoteString | | other.swift:57:16:57:16 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | -| sqlite3_c_api.swift:123:21:123:37 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| sqlite3_c_api.swift:123:25:123:25 | remoteString | semmle.label | remoteString | | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | semmle.label | unsafeQuery1 | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | semmle.label | unsafeQuery2 | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | semmle.label | unsafeQuery3 | -| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | semmle.label | safeQuery2 | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | semmle.label | unsafeQuery3 | @@ -351,7 +339,6 @@ subpaths | SQLite.swift:73:17:73:17 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:74:17:74:17 | unsafeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:75:17:75:17 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | -| SQLite.swift:77:17:77:17 | safeQuery2 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:77:17:77:17 | safeQuery2 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:83:29:83:29 | unsafeQuery3 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:83:29:83:29 | unsafeQuery3 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:95:32:95:32 | remoteString | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:95:32:95:32 | remoteString | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | | SQLite.swift:100:29:100:29 | unsafeQuery1 | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:100:29:100:29 | unsafeQuery1 | This query depends on a $@. | SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | user-provided value | @@ -373,7 +360,6 @@ subpaths | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | -| sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:137:33:137:33 | safeQuery2 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | This query depends on a $@. | sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | user-provided value | diff --git a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected index 64a65dd1a54d..cfd68d818efc 100644 --- a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected +++ b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected @@ -30,17 +30,6 @@ edges | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | | UnsafeJsEval.swift:214:24:214:24 | remoteData | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | provenance | | -| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:265:13:265:13 | string | provenance | | -| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:268:13:268:13 | string | provenance | | -| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:276:13:276:13 | string | provenance | | -| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:279:13:279:13 | string | provenance | | -| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | -| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | -| UnsafeJsEval.swift:217:24:217:70 | call to String.init(_:) | UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | provenance | | -| UnsafeJsEval.swift:217:31:217:64 | call to Self.init(_:) | UnsafeJsEval.swift:217:31:217:69 | ... ??(_:_:) ... | provenance | | -| UnsafeJsEval.swift:217:31:217:69 | ... ??(_:_:) ... | UnsafeJsEval.swift:217:24:217:70 | call to String.init(_:) | provenance | | -| UnsafeJsEval.swift:217:35:217:63 | try! ... | UnsafeJsEval.swift:217:31:217:64 | call to Self.init(_:) | provenance | | -| UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:217:35:217:63 | try! ... | provenance | | | UnsafeJsEval.swift:265:13:265:13 | string | UnsafeJsEval.swift:266:43:266:43 | string | provenance | | | UnsafeJsEval.swift:266:43:266:43 | string | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | provenance | | | UnsafeJsEval.swift:268:13:268:13 | string | UnsafeJsEval.swift:269:43:269:43 | string | provenance | | @@ -74,12 +63,6 @@ nodes | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | semmle.label | call to String.init(decoding:as:) | | UnsafeJsEval.swift:214:24:214:24 | remoteData | semmle.label | remoteData | -| UnsafeJsEval.swift:217:7:217:74 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | -| UnsafeJsEval.swift:217:24:217:70 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| UnsafeJsEval.swift:217:31:217:64 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| UnsafeJsEval.swift:217:31:217:69 | ... ??(_:_:) ... | semmle.label | ... ??(_:_:) ... | -| UnsafeJsEval.swift:217:35:217:63 | try! ... | semmle.label | try! ... | -| UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | UnsafeJsEval.swift:265:13:265:13 | string | semmle.label | string | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | semmle.label | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | | UnsafeJsEval.swift:266:43:266:43 | string | semmle.label | string | @@ -114,30 +97,24 @@ subpaths | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | -| UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | -| UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | -| UnsafeJsEval.swift:277:26:277:26 | string | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:277:26:277:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | -| UnsafeJsEval.swift:280:26:280:26 | string | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:280:26:280:26 | string | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | -| UnsafeJsEval.swift:291:17:291:17 | jsstr | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | -| UnsafeJsEval.swift:305:17:305:17 | jsstr | UnsafeJsEval.swift:217:40:217:63 | call to String.init(contentsOf:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | Evaluation of uncontrolled JavaScript from a remote source. | | UnsafeJsEval.swift:320:44:320:74 | ... .+(_:_:) ... | UnsafeJsEval.swift:318:24:318:87 | call to String.init(contentsOf:) | UnsafeJsEval.swift:320:44:320:74 | ... .+(_:_:) ... | Evaluation of uncontrolled JavaScript from a remote source. | diff --git a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected index 43a8b08c7ead..94dd27a82c2f 100644 --- a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected +++ b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected @@ -18,8 +18,6 @@ edges | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:118:61:118:61 | tainted | provenance | | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:120:26:120:26 | tainted | provenance | | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:124:27:124:27 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:130:39:130:39 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:135:37:135:37 | tainted | provenance | | | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:139:5:139:5 | tainted | provenance | | @@ -30,14 +28,6 @@ edges | UncontrolledFormatString.swift:111:50:111:50 | tainted | UncontrolledFormatString.swift:111:33:111:57 | call to NSString.init(string:) | provenance | | | UncontrolledFormatString.swift:112:64:112:64 | tainted | UncontrolledFormatString.swift:112:47:112:71 | call to NSString.init(string:) | provenance | | | UncontrolledFormatString.swift:116:11:116:11 | tainted | UncontrolledFormatString.swift:77:12:77:22 | format | provenance | | -| UncontrolledFormatString.swift:120:22:120:33 | call to Self.init(_:) | UncontrolledFormatString.swift:122:24:122:24 | taintedSan | provenance | | -| UncontrolledFormatString.swift:120:26:120:26 | tainted | UncontrolledFormatString.swift:120:22:120:33 | call to Self.init(_:) | provenance | | -| UncontrolledFormatString.swift:124:23:124:34 | call to Self.init(_:) | UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | provenance | | -| UncontrolledFormatString.swift:124:27:124:27 | tainted | UncontrolledFormatString.swift:124:23:124:34 | call to Self.init(_:) | provenance | | -| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) | UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | provenance | | -| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) [Collection element] | UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | provenance | | -| UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) | provenance | | -| UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) [Collection element] | provenance | | | UncontrolledFormatString.swift:135:37:135:37 | tainted | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | provenance | | | UncontrolledFormatString.swift:139:5:139:5 | tainted | UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | provenance | | | UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:141:24:141:24 | cstr | provenance | | @@ -70,15 +60,6 @@ nodes | UncontrolledFormatString.swift:116:11:116:11 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:116:11:116:11 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:118:61:118:61 | tainted | semmle.label | tainted | -| UncontrolledFormatString.swift:120:22:120:33 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| UncontrolledFormatString.swift:120:26:120:26 | tainted | semmle.label | tainted | -| UncontrolledFormatString.swift:122:24:122:24 | taintedSan | semmle.label | taintedSan | -| UncontrolledFormatString.swift:124:23:124:34 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | -| UncontrolledFormatString.swift:124:27:124:27 | tainted | semmle.label | tainted | -| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| UncontrolledFormatString.swift:125:23:125:41 | call to String.init(_:) [Collection element] | semmle.label | call to String.init(_:) [Collection element] | -| UncontrolledFormatString.swift:125:30:125:30 | taintedVal2 | semmle.label | taintedVal2 | -| UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | semmle.label | taintedSan2 | | UncontrolledFormatString.swift:130:39:130:39 | tainted | semmle.label | tainted | | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | semmle.label | call to NSString.init(string:) | | UncontrolledFormatString.swift:135:37:135:37 | tainted | semmle.label | tainted | @@ -107,8 +88,6 @@ subpaths | UncontrolledFormatString.swift:115:11:115:11 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:115:11:115:11 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:116:11:116:11 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:118:61:118:61 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:118:61:118:61 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | -| UncontrolledFormatString.swift:122:24:122:24 | taintedSan | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:122:24:122:24 | taintedSan | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | -| UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:126:24:126:24 | taintedSan2 | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:130:39:130:39 | tainted | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:130:39:130:39 | tainted | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | | UncontrolledFormatString.swift:141:24:141:24 | cstr | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:141:24:141:24 | cstr | This format string depends on $@. | UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | this user-provided value | From 8245e6c2b971b4ab2a29fe7720d90ee82797bfd1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 14 Nov 2024 17:51:47 +0000 Subject: [PATCH 6/7] Swift: Fix unwanted flows. --- .../frameworks/StandardLibrary/Collection.qll | 4 +- .../CWE-259/ConstantPassword.expected | 25 ------- .../Security/CWE-760/ConstantSalt.expected | 67 ------------------- 3 files changed, 2 insertions(+), 94 deletions(-) diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Collection.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Collection.qll index 2d1c83d0c811..967eeec1432a 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Collection.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Collection.qll @@ -32,8 +32,8 @@ private class CollectionSummaries extends SummaryModelCsv { ";Collection;true;dropLast(_:);;;Argument[-1].CollectionElement;ReturnValue.CollectionElement;value", ";Collection;true;flatMap(_:);;;Argument[-1];ReturnValue;taint", ";Collection;true;flatMap(_:);;;Argument[-1].CollectionElement;ReturnValue.CollectionElement;value", - ";Collection;true;map(_:);;;Argument[-1];ReturnValue;taint", - ";Collection;true;map(_:);;;Argument[-1].CollectionElement;ReturnValue.CollectionElement;value", + //";Collection;true;map(_:);;;Argument[-1];ReturnValue;taint", --- disabled due to dubious results in practice + //";Collection;true;map(_:);;;Argument[-1].CollectionElement;ReturnValue.CollectionElement;value", --- disabled due to dubious results in practice ";Collection;true;split(maxSplits:omittingEmptySubsequences:whereSeparator:);;;Argument[-1];ReturnValue;taint", ";Collection;true;split(separator:maxSplits:omittingEmptySubsequences:);;;Argument[-1];ReturnValue;taint", ";Collection;true;removeFirst();;;Argument[-1];ReturnValue;taint", diff --git a/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected b/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected index 640286de0ca8..0c1e98bfe7c6 100644 --- a/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected +++ b/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected @@ -1,17 +1,4 @@ edges -| rncryptor.swift:60:9:60:65 | call to String.init(_:) | rncryptor.swift:68:25:68:44 | call to getARandomPassword() | provenance | | -| rncryptor.swift:60:9:60:65 | call to String.init(_:) [Collection element] | rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | provenance | | -| rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:60:16:60:64 | call to map(_:) | provenance | | -| rncryptor.swift:60:16:60:64 | call to map(_:) | rncryptor.swift:60:9:60:65 | call to String.init(_:) | provenance | | -| rncryptor.swift:60:16:60:64 | call to map(_:) | rncryptor.swift:60:9:60:65 | call to String.init(_:) [Collection element] | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:74:89:74:89 | myRandomPassword | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:75:56:75:56 | myRandomPassword | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:80:89:80:89 | myMaybePassword | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | rncryptor.swift:81:56:81:56 | myMaybePassword | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:74:89:74:89 | myRandomPassword | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:75:56:75:56 | myRandomPassword | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:80:89:80:89 | myMaybePassword | provenance | | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | rncryptor.swift:81:56:81:56 | myMaybePassword | provenance | | | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:77:89:77:89 | myConstPassword | provenance | | | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:78:56:78:56 | myConstPassword | provenance | | | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:80:89:80:89 | myMaybePassword | provenance | | @@ -43,15 +30,7 @@ edges | test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:63:40:63:40 | constantStringPassword | provenance | | | test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:68:34:68:34 | constantStringPassword | provenance | | nodes -| rncryptor.swift:60:9:60:65 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| rncryptor.swift:60:9:60:65 | call to String.init(_:) [Collection element] | semmle.label | call to String.init(_:) [Collection element] | -| rncryptor.swift:60:16:60:16 | ............ | semmle.label | ............ | -| rncryptor.swift:60:16:60:64 | call to map(_:) | semmle.label | call to map(_:) | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() | semmle.label | call to getARandomPassword() | -| rncryptor.swift:68:25:68:44 | call to getARandomPassword() [Collection element] | semmle.label | call to getARandomPassword() [Collection element] | | rncryptor.swift:69:24:69:24 | abc123 | semmle.label | abc123 | -| rncryptor.swift:74:89:74:89 | myRandomPassword | semmle.label | myRandomPassword | -| rncryptor.swift:75:56:75:56 | myRandomPassword | semmle.label | myRandomPassword | | rncryptor.swift:77:89:77:89 | myConstPassword | semmle.label | myConstPassword | | rncryptor.swift:78:56:78:56 | myConstPassword | semmle.label | myConstPassword | | rncryptor.swift:80:89:80:89 | myMaybePassword | semmle.label | myMaybePassword | @@ -86,13 +65,9 @@ nodes | test.swift:68:34:68:34 | constantStringPassword | semmle.label | constantStringPassword | subpaths #select -| rncryptor.swift:74:89:74:89 | myRandomPassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:74:89:74:89 | myRandomPassword | The value '............' is used as a constant password. | -| rncryptor.swift:75:56:75:56 | myRandomPassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:75:56:75:56 | myRandomPassword | The value '............' is used as a constant password. | | rncryptor.swift:77:89:77:89 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:77:89:77:89 | myConstPassword | The value 'abc123' is used as a constant password. | | rncryptor.swift:78:56:78:56 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:78:56:78:56 | myConstPassword | The value 'abc123' is used as a constant password. | -| rncryptor.swift:80:89:80:89 | myMaybePassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:80:89:80:89 | myMaybePassword | The value '............' is used as a constant password. | | rncryptor.swift:80:89:80:89 | myMaybePassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:80:89:80:89 | myMaybePassword | The value 'abc123' is used as a constant password. | -| rncryptor.swift:81:56:81:56 | myMaybePassword | rncryptor.swift:60:16:60:16 | ............ | rncryptor.swift:81:56:81:56 | myMaybePassword | The value '............' is used as a constant password. | | rncryptor.swift:81:56:81:56 | myMaybePassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:81:56:81:56 | myMaybePassword | The value 'abc123' is used as a constant password. | | rncryptor.swift:91:39:91:39 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:91:39:91:39 | myConstPassword | The value 'abc123' is used as a constant password. | | rncryptor.swift:92:37:92:37 | myConstPassword | rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:92:37:92:37 | myConstPassword | The value 'abc123' is used as a constant password. | diff --git a/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected b/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected index 93d06372be46..002454a3021d 100644 --- a/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected +++ b/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected @@ -1,28 +1,4 @@ edges -| rncryptor.swift:47:9:47:69 | call to String.init(_:) | rncryptor.swift:57:27:57:44 | call to getARandomString() | provenance | | -| rncryptor.swift:47:9:47:69 | call to String.init(_:) | rncryptor.swift:58:27:58:44 | call to getARandomString() | provenance | | -| rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:47:16:47:68 | call to map(_:) | provenance | | -| rncryptor.swift:47:16:47:68 | call to map(_:) | rncryptor.swift:47:9:47:69 | call to String.init(_:) | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:62:57:62:57 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:67:106:67:106 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:69:106:69:106 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:70:106:70:106 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:72:106:72:106 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:74:127:74:127 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:76:127:76:127 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:77:135:77:135 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | rncryptor.swift:79:135:79:135 | myRandomSalt1 | provenance | | -| rncryptor.swift:57:27:57:44 | call to getARandomString() | rncryptor.swift:57:22:57:45 | call to Data.init(_:) | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:64:55:64:55 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:67:131:67:131 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:68:133:68:133 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:70:131:70:131 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:71:133:71:133 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:74:152:74:152 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:75:154:75:154 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:77:160:77:160 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | rncryptor.swift:78:162:78:162 | myRandomSalt2 | provenance | | -| rncryptor.swift:58:27:58:44 | call to getARandomString() | rncryptor.swift:58:22:58:45 | call to Data.init(_:) | provenance | | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:63:57:63:57 | myConstantSalt1 | provenance | | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:68:106:68:106 | myConstantSalt1 | provenance | | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:71:106:71:106 | myConstantSalt1 | provenance | | @@ -48,44 +24,19 @@ edges | test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:63:59:63:59 | constantStringSalt | provenance | | | test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:68:53:68:53 | constantStringSalt | provenance | | nodes -| rncryptor.swift:47:9:47:69 | call to String.init(_:) | semmle.label | call to String.init(_:) | -| rncryptor.swift:47:16:47:16 | ................ | semmle.label | ................ | -| rncryptor.swift:47:16:47:68 | call to map(_:) | semmle.label | call to map(_:) | -| rncryptor.swift:57:22:57:45 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | -| rncryptor.swift:57:27:57:44 | call to getARandomString() | semmle.label | call to getARandomString() | -| rncryptor.swift:58:22:58:45 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | -| rncryptor.swift:58:27:58:44 | call to getARandomString() | semmle.label | call to getARandomString() | | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | rncryptor.swift:59:29:59:29 | abcdef123456 | semmle.label | abcdef123456 | | rncryptor.swift:60:24:60:30 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | rncryptor.swift:60:29:60:29 | 0 | semmle.label | 0 | -| rncryptor.swift:62:57:62:57 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:63:57:63:57 | myConstantSalt1 | semmle.label | myConstantSalt1 | -| rncryptor.swift:64:55:64:55 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:65:55:65:55 | myConstantSalt2 | semmle.label | myConstantSalt2 | -| rncryptor.swift:67:106:67:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | -| rncryptor.swift:67:131:67:131 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:68:106:68:106 | myConstantSalt1 | semmle.label | myConstantSalt1 | -| rncryptor.swift:68:133:68:133 | myRandomSalt2 | semmle.label | myRandomSalt2 | -| rncryptor.swift:69:106:69:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:69:131:69:131 | myConstantSalt2 | semmle.label | myConstantSalt2 | -| rncryptor.swift:70:106:70:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | -| rncryptor.swift:70:131:70:131 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:71:106:71:106 | myConstantSalt1 | semmle.label | myConstantSalt1 | -| rncryptor.swift:71:133:71:133 | myRandomSalt2 | semmle.label | myRandomSalt2 | -| rncryptor.swift:72:106:72:106 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:72:131:72:131 | myConstantSalt2 | semmle.label | myConstantSalt2 | -| rncryptor.swift:74:127:74:127 | myRandomSalt1 | semmle.label | myRandomSalt1 | -| rncryptor.swift:74:152:74:152 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:75:127:75:127 | myConstantSalt1 | semmle.label | myConstantSalt1 | -| rncryptor.swift:75:154:75:154 | myRandomSalt2 | semmle.label | myRandomSalt2 | -| rncryptor.swift:76:127:76:127 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:76:152:76:152 | myConstantSalt2 | semmle.label | myConstantSalt2 | -| rncryptor.swift:77:135:77:135 | myRandomSalt1 | semmle.label | myRandomSalt1 | -| rncryptor.swift:77:160:77:160 | myRandomSalt2 | semmle.label | myRandomSalt2 | | rncryptor.swift:78:135:78:135 | myConstantSalt1 | semmle.label | myConstantSalt1 | -| rncryptor.swift:78:162:78:162 | myRandomSalt2 | semmle.label | myRandomSalt2 | -| rncryptor.swift:79:135:79:135 | myRandomSalt1 | semmle.label | myRandomSalt1 | | rncryptor.swift:79:160:79:160 | myConstantSalt2 | semmle.label | myConstantSalt2 | | test.swift:29:3:29:3 | this string is constant | semmle.label | this string is constant | | test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | semmle.label | call to Array.init(_:) [Collection element] | @@ -103,33 +54,15 @@ nodes | test.swift:68:53:68:53 | constantStringSalt | semmle.label | constantStringSalt | subpaths #select -| rncryptor.swift:62:57:62:57 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:62:57:62:57 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:63:57:63:57 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:63:57:63:57 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | -| rncryptor.swift:64:55:64:55 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:64:55:64:55 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:65:55:65:55 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:65:55:65:55 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | -| rncryptor.swift:67:106:67:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:67:106:67:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:67:131:67:131 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:67:131:67:131 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:68:106:68:106 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:68:106:68:106 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | -| rncryptor.swift:68:133:68:133 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:68:133:68:133 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:69:106:69:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:69:106:69:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:69:131:69:131 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:69:131:69:131 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | -| rncryptor.swift:70:106:70:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:70:106:70:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:70:131:70:131 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:70:131:70:131 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:71:106:71:106 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:71:106:71:106 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | -| rncryptor.swift:71:133:71:133 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:71:133:71:133 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:72:106:72:106 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:72:106:72:106 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:72:131:72:131 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:72:131:72:131 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | -| rncryptor.swift:74:127:74:127 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:74:127:74:127 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:74:152:74:152 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:74:152:74:152 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:75:127:75:127 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:75:127:75:127 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | -| rncryptor.swift:75:154:75:154 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:75:154:75:154 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:76:127:76:127 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:76:127:76:127 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:76:152:76:152 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:76:152:76:152 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | -| rncryptor.swift:77:135:77:135 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:77:135:77:135 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:77:160:77:160 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:77:160:77:160 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:78:135:78:135 | myConstantSalt1 | rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:78:135:78:135 | myConstantSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:59:29:59:29 | abcdef123456 | abcdef123456 | -| rncryptor.swift:78:162:78:162 | myRandomSalt2 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:78:162:78:162 | myRandomSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | -| rncryptor.swift:79:135:79:135 | myRandomSalt1 | rncryptor.swift:47:16:47:16 | ................ | rncryptor.swift:79:135:79:135 | myRandomSalt1 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:47:16:47:16 | ................ | ................ | | rncryptor.swift:79:160:79:160 | myConstantSalt2 | rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:79:160:79:160 | myConstantSalt2 | The value $@ is used as a constant, which is insecure for hashing passwords. | rncryptor.swift:60:29:60:29 | 0 | 0 | | test.swift:51:49:51:49 | constantSalt | test.swift:43:35:43:130 | [...] | test.swift:51:49:51:49 | constantSalt | The value $@ is used as a constant, which is insecure for hashing passwords. | test.swift:43:35:43:130 | [...] | [...] | | test.swift:52:49:52:49 | constantStringSalt | test.swift:29:3:29:3 | this string is constant | test.swift:52:49:52:49 | constantStringSalt | The value $@ is used as a constant, which is insecure for hashing passwords. | test.swift:29:3:29:3 | this string is constant | this string is constant | From fa43207538d25f51dd5a65cdf6262b88054f98f3 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 18 Nov 2024 09:40:06 +0000 Subject: [PATCH 7/7] Swift: Autoformat. --- .../lib/codeql/swift/security/CommandInjectionExtensions.qll | 3 ++- .../lib/codeql/swift/security/PredicateInjectionExtensions.qll | 3 ++- swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll | 3 ++- .../swift/security/UncontrolledFormatStringExtensions.qll | 3 ++- swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll | 3 ++- swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll | 3 ++- .../codeql/swift/security/regex/RegexInjectionExtensions.qll | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll index 55391bd3378d..426fc7a664fb 100644 --- a/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/CommandInjectionExtensions.qll @@ -63,6 +63,7 @@ private class CommandInjectionSinks extends SinkModelCsv { private class CommandInjectionDefaultBarrier extends CommandInjectionBarrier { CommandInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = + ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll index 1ff8b97a281a..2beb37c88d20 100644 --- a/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/PredicateInjectionExtensions.qll @@ -46,6 +46,7 @@ private class PredicateInjectionSinkCsv extends SinkModelCsv { private class PredicateInjectionDefaultBarrier extends PredicateInjectionBarrier { PredicateInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = + ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll index 0ecc24a178ed..4a8714967950 100644 --- a/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/SqlInjectionExtensions.qll @@ -190,6 +190,7 @@ private class DefaultSqlInjectionSink extends SqlInjectionSink { private class SqlInjectionDefaultBarrier extends SqlInjectionBarrier { SqlInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = + ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll b/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll index eb44f6894b94..97c987c51b0b 100644 --- a/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UncontrolledFormatStringExtensions.qll @@ -94,6 +94,7 @@ class HeuristicUncontrolledFormatStringSink extends UncontrolledFormatStringSink private class UncontrolledFormatStringDefaultBarrier extends UncontrolledFormatStringBarrier { UncontrolledFormatStringDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = + ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll index 923449f4d739..9129d033409c 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalExtensions.qll @@ -127,6 +127,7 @@ private class DefaultUnsafeJsEvalSink extends UnsafeJsEvalSink { private class UnsafeJsEvalDefaultBarrier extends UnsafeJsEvalBarrier { UnsafeJsEvalDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = + ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll b/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll index 1df4a06417b5..114ba813d210 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeUnpackExtensions.qll @@ -73,6 +73,7 @@ private class UnsafeUnpackAdditionalDataFlowStep extends UnsafeUnpackAdditionalF private class UnsafeUnpackDefaultBarrier extends UnsafeUnpackBarrier { UnsafeUnpackDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = + ["Numeric", "SignedInteger", "UnsignedInteger"] } } diff --git a/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll b/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll index 09c4641cbf01..eb2f3ed564b0 100644 --- a/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll +++ b/swift/ql/lib/codeql/swift/security/regex/RegexInjectionExtensions.qll @@ -64,6 +64,7 @@ private class RegexInjectionSinks extends SinkModelCsv { private class RegexInjectionDefaultBarrier extends RegexInjectionBarrier { RegexInjectionDefaultBarrier() { // any numeric type - this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = ["Numeric", "SignedInteger", "UnsignedInteger"] + this.asExpr().getType().getUnderlyingType().getABaseType*().getName() = + ["Numeric", "SignedInteger", "UnsignedInteger"] } }