Skip to content

Commit d10cdfb

Browse files
committed
Rust: Move existing blanket implementation test
1 parent 69a1c7e commit d10cdfb

File tree

3 files changed

+120
-121
lines changed

3 files changed

+120
-121
lines changed

rust/ql/test/library-tests/type-inference/blanket_impl.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,3 +122,40 @@ mod extension_trait_blanket_impl {
122122
let result = my_other_flag.try_read_flag_twice(); // $ target=MyOtherFlag::try_read_flag_twice
123123
}
124124
}
125+
126+
pub mod sql_exec {
127+
// a highly simplified model of `MySqlConnection.execute` in SQLx
128+
129+
trait Connection {}
130+
131+
trait Executor {
132+
fn execute1(&self);
133+
fn execute2<E>(&self, query: E);
134+
}
135+
136+
impl<T: Connection> Executor for T {
137+
fn execute1(&self) {
138+
println!("Executor::execute1");
139+
}
140+
141+
fn execute2<E>(&self, _query: E) {
142+
println!("Executor::execute2");
143+
}
144+
}
145+
146+
struct MySqlConnection {}
147+
148+
impl Connection for MySqlConnection {}
149+
150+
pub fn f() {
151+
let c = MySqlConnection {}; // $ certainType=c:MySqlConnection
152+
153+
c.execute1(); // $ MISSING: target=execute1
154+
MySqlConnection::execute1(&c); // $ MISSING: target=execute1
155+
156+
c.execute2("SELECT * FROM users"); // $ MISSING: target=execute2
157+
c.execute2::<&str>("SELECT * FROM users"); // $ MISSING: target=execute2
158+
MySqlConnection::execute2(&c, "SELECT * FROM users"); // $ MISSING: target=execute2
159+
MySqlConnection::execute2::<&str>(&c, "SELECT * FROM users"); // $ MISSING: target=execute2
160+
}
161+
}

rust/ql/test/library-tests/type-inference/main.rs

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2569,43 +2569,6 @@ pub mod pattern_matching_experimental {
25692569
}
25702570
}
25712571

2572-
pub mod exec {
2573-
// a highly simplified model of `MySqlConnection.execute` in SQLx
2574-
2575-
trait Connection {}
2576-
2577-
trait Executor {
2578-
fn execute1(&self);
2579-
fn execute2<E>(&self, query: E);
2580-
}
2581-
2582-
impl<T: Connection> Executor for T {
2583-
fn execute1(&self) {
2584-
println!("Executor::execute1");
2585-
}
2586-
2587-
fn execute2<E>(&self, _query: E) {
2588-
println!("Executor::execute2");
2589-
}
2590-
}
2591-
2592-
struct MySqlConnection {}
2593-
2594-
impl Connection for MySqlConnection {}
2595-
2596-
pub fn f() {
2597-
let c = MySqlConnection {}; // $ certainType=c:MySqlConnection
2598-
2599-
c.execute1(); // $ MISSING: target=execute1
2600-
MySqlConnection::execute1(&c); // $ MISSING: target=execute1
2601-
2602-
c.execute2("SELECT * FROM users"); // $ MISSING: target=execute2
2603-
c.execute2::<&str>("SELECT * FROM users"); // $ MISSING: target=execute2
2604-
MySqlConnection::execute2(&c, "SELECT * FROM users"); // $ MISSING: target=execute2
2605-
MySqlConnection::execute2::<&str>(&c, "SELECT * FROM users"); // $ MISSING: target=execute2
2606-
}
2607-
}
2608-
26092572
pub mod path_buf {
26102573
// a highly simplified model of `PathBuf::canonicalize`
26112574

@@ -2684,7 +2647,6 @@ fn main() {
26842647
macros::f(); // $ target=f
26852648
method_determined_by_argument_type::f(); // $ target=f
26862649
tuples::f(); // $ target=f
2687-
exec::f(); // $ target=f
26882650
path_buf::f(); // $ target=f
26892651
dereference::test(); // $ target=test
26902652
pattern_matching::test_all_patterns(); // $ target=test_all_patterns

rust/ql/test/library-tests/type-inference/type-inference.expected

Lines changed: 83 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,46 @@ inferType
9191
| blanket_impl.rs:122:22:122:34 | my_other_flag | | blanket_impl.rs:99:5:101:5 | MyOtherFlag |
9292
| blanket_impl.rs:122:22:122:56 | my_other_flag.try_read_flag_twice() | | {EXTERNAL LOCATION} | Option |
9393
| blanket_impl.rs:122:22:122:56 | my_other_flag.try_read_flag_twice() | T | {EXTERNAL LOCATION} | bool |
94+
| blanket_impl.rs:132:21:132:25 | SelfParam | | file://:0:0:0:0 | & |
95+
| blanket_impl.rs:132:21:132:25 | SelfParam | &T | blanket_impl.rs:131:5:134:5 | Self [trait Executor] |
96+
| blanket_impl.rs:133:24:133:28 | SelfParam | | file://:0:0:0:0 | & |
97+
| blanket_impl.rs:133:24:133:28 | SelfParam | &T | blanket_impl.rs:131:5:134:5 | Self [trait Executor] |
98+
| blanket_impl.rs:133:31:133:35 | query | | blanket_impl.rs:133:21:133:21 | E |
99+
| blanket_impl.rs:137:21:137:25 | SelfParam | | file://:0:0:0:0 | & |
100+
| blanket_impl.rs:137:21:137:25 | SelfParam | &T | blanket_impl.rs:136:10:136:22 | T |
101+
| blanket_impl.rs:138:22:138:41 | "Executor::execute1\\n" | | file://:0:0:0:0 | & |
102+
| blanket_impl.rs:138:22:138:41 | "Executor::execute1\\n" | &T | {EXTERNAL LOCATION} | str |
103+
| blanket_impl.rs:138:22:138:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments |
104+
| blanket_impl.rs:138:22:138:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments |
105+
| blanket_impl.rs:141:24:141:28 | SelfParam | | file://:0:0:0:0 | & |
106+
| blanket_impl.rs:141:24:141:28 | SelfParam | &T | blanket_impl.rs:136:10:136:22 | T |
107+
| blanket_impl.rs:141:31:141:36 | _query | | blanket_impl.rs:141:21:141:21 | E |
108+
| blanket_impl.rs:142:22:142:41 | "Executor::execute2\\n" | | file://:0:0:0:0 | & |
109+
| blanket_impl.rs:142:22:142:41 | "Executor::execute2\\n" | &T | {EXTERNAL LOCATION} | str |
110+
| blanket_impl.rs:142:22:142:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments |
111+
| blanket_impl.rs:142:22:142:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments |
112+
| blanket_impl.rs:151:13:151:13 | c | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
113+
| blanket_impl.rs:151:17:151:34 | MySqlConnection {...} | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
114+
| blanket_impl.rs:153:9:153:9 | c | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
115+
| blanket_impl.rs:154:35:154:36 | &c | | file://:0:0:0:0 | & |
116+
| blanket_impl.rs:154:35:154:36 | &c | &T | blanket_impl.rs:146:5:146:29 | MySqlConnection |
117+
| blanket_impl.rs:154:36:154:36 | c | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
118+
| blanket_impl.rs:156:9:156:9 | c | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
119+
| blanket_impl.rs:156:20:156:40 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
120+
| blanket_impl.rs:156:20:156:40 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
121+
| blanket_impl.rs:157:9:157:9 | c | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
122+
| blanket_impl.rs:157:28:157:48 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
123+
| blanket_impl.rs:157:28:157:48 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
124+
| blanket_impl.rs:158:35:158:36 | &c | | file://:0:0:0:0 | & |
125+
| blanket_impl.rs:158:35:158:36 | &c | &T | blanket_impl.rs:146:5:146:29 | MySqlConnection |
126+
| blanket_impl.rs:158:36:158:36 | c | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
127+
| blanket_impl.rs:158:39:158:59 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
128+
| blanket_impl.rs:158:39:158:59 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
129+
| blanket_impl.rs:159:43:159:44 | &c | | file://:0:0:0:0 | & |
130+
| blanket_impl.rs:159:43:159:44 | &c | &T | blanket_impl.rs:146:5:146:29 | MySqlConnection |
131+
| blanket_impl.rs:159:44:159:44 | c | | blanket_impl.rs:146:5:146:29 | MySqlConnection |
132+
| blanket_impl.rs:159:47:159:67 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
133+
| blanket_impl.rs:159:47:159:67 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
94134
| closure.rs:6:13:6:22 | my_closure | | {EXTERNAL LOCATION} | dyn FnOnce |
95135
| closure.rs:6:13:6:22 | my_closure | dyn(Args) | file://:0:0:0:0 | (T_2) |
96136
| closure.rs:6:13:6:22 | my_closure | dyn(Args).0(2) | {EXTERNAL LOCATION} | bool |
@@ -5014,89 +5054,49 @@ inferType
50145054
| main.rs:2566:26:2566:43 | "Nested boxed: {}\\n" | &T | {EXTERNAL LOCATION} | str |
50155055
| main.rs:2566:26:2566:59 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments |
50165056
| main.rs:2566:26:2566:59 | MacroExpr | | {EXTERNAL LOCATION} | Arguments |
5017-
| main.rs:2578:21:2578:25 | SelfParam | | file://:0:0:0:0 | & |
5018-
| main.rs:2578:21:2578:25 | SelfParam | &T | main.rs:2577:5:2580:5 | Self [trait Executor] |
5019-
| main.rs:2579:24:2579:28 | SelfParam | | file://:0:0:0:0 | & |
5020-
| main.rs:2579:24:2579:28 | SelfParam | &T | main.rs:2577:5:2580:5 | Self [trait Executor] |
5021-
| main.rs:2579:31:2579:35 | query | | main.rs:2579:21:2579:21 | E |
5022-
| main.rs:2583:21:2583:25 | SelfParam | | file://:0:0:0:0 | & |
5023-
| main.rs:2583:21:2583:25 | SelfParam | &T | main.rs:2582:10:2582:22 | T |
5024-
| main.rs:2584:22:2584:41 | "Executor::execute1\\n" | | file://:0:0:0:0 | & |
5025-
| main.rs:2584:22:2584:41 | "Executor::execute1\\n" | &T | {EXTERNAL LOCATION} | str |
5026-
| main.rs:2584:22:2584:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments |
5027-
| main.rs:2584:22:2584:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments |
5028-
| main.rs:2587:24:2587:28 | SelfParam | | file://:0:0:0:0 | & |
5029-
| main.rs:2587:24:2587:28 | SelfParam | &T | main.rs:2582:10:2582:22 | T |
5030-
| main.rs:2587:31:2587:36 | _query | | main.rs:2587:21:2587:21 | E |
5031-
| main.rs:2588:22:2588:41 | "Executor::execute2\\n" | | file://:0:0:0:0 | & |
5032-
| main.rs:2588:22:2588:41 | "Executor::execute2\\n" | &T | {EXTERNAL LOCATION} | str |
5033-
| main.rs:2588:22:2588:41 | FormatArgsExpr | | {EXTERNAL LOCATION} | Arguments |
5034-
| main.rs:2588:22:2588:41 | MacroExpr | | {EXTERNAL LOCATION} | Arguments |
5035-
| main.rs:2597:13:2597:13 | c | | main.rs:2592:5:2592:29 | MySqlConnection |
5036-
| main.rs:2597:17:2597:34 | MySqlConnection {...} | | main.rs:2592:5:2592:29 | MySqlConnection |
5037-
| main.rs:2599:9:2599:9 | c | | main.rs:2592:5:2592:29 | MySqlConnection |
5038-
| main.rs:2600:35:2600:36 | &c | | file://:0:0:0:0 | & |
5039-
| main.rs:2600:35:2600:36 | &c | &T | main.rs:2592:5:2592:29 | MySqlConnection |
5040-
| main.rs:2600:36:2600:36 | c | | main.rs:2592:5:2592:29 | MySqlConnection |
5041-
| main.rs:2602:9:2602:9 | c | | main.rs:2592:5:2592:29 | MySqlConnection |
5042-
| main.rs:2602:20:2602:40 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
5043-
| main.rs:2602:20:2602:40 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
5044-
| main.rs:2603:9:2603:9 | c | | main.rs:2592:5:2592:29 | MySqlConnection |
5045-
| main.rs:2603:28:2603:48 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
5046-
| main.rs:2603:28:2603:48 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
5047-
| main.rs:2604:35:2604:36 | &c | | file://:0:0:0:0 | & |
5048-
| main.rs:2604:35:2604:36 | &c | &T | main.rs:2592:5:2592:29 | MySqlConnection |
5049-
| main.rs:2604:36:2604:36 | c | | main.rs:2592:5:2592:29 | MySqlConnection |
5050-
| main.rs:2604:39:2604:59 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
5051-
| main.rs:2604:39:2604:59 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
5052-
| main.rs:2605:43:2605:44 | &c | | file://:0:0:0:0 | & |
5053-
| main.rs:2605:43:2605:44 | &c | &T | main.rs:2592:5:2592:29 | MySqlConnection |
5054-
| main.rs:2605:44:2605:44 | c | | main.rs:2592:5:2592:29 | MySqlConnection |
5055-
| main.rs:2605:47:2605:67 | "SELECT * FROM users" | | file://:0:0:0:0 | & |
5056-
| main.rs:2605:47:2605:67 | "SELECT * FROM users" | &T | {EXTERNAL LOCATION} | str |
5057-
| main.rs:2615:36:2617:9 | { ... } | | main.rs:2612:5:2612:22 | Path |
5058-
| main.rs:2616:13:2616:19 | Path {...} | | main.rs:2612:5:2612:22 | Path |
5059-
| main.rs:2619:29:2619:33 | SelfParam | | file://:0:0:0:0 | & |
5060-
| main.rs:2619:29:2619:33 | SelfParam | &T | main.rs:2612:5:2612:22 | Path |
5061-
| main.rs:2619:59:2621:9 | { ... } | | {EXTERNAL LOCATION} | Result |
5062-
| main.rs:2619:59:2621:9 | { ... } | E | file://:0:0:0:0 | () |
5063-
| main.rs:2619:59:2621:9 | { ... } | T | main.rs:2624:5:2624:25 | PathBuf |
5064-
| main.rs:2620:13:2620:30 | Ok(...) | | {EXTERNAL LOCATION} | Result |
5065-
| main.rs:2620:13:2620:30 | Ok(...) | E | file://:0:0:0:0 | () |
5066-
| main.rs:2620:13:2620:30 | Ok(...) | T | main.rs:2624:5:2624:25 | PathBuf |
5067-
| main.rs:2620:16:2620:29 | ...::new(...) | | main.rs:2624:5:2624:25 | PathBuf |
5068-
| main.rs:2627:39:2629:9 | { ... } | | main.rs:2624:5:2624:25 | PathBuf |
5069-
| main.rs:2628:13:2628:22 | PathBuf {...} | | main.rs:2624:5:2624:25 | PathBuf |
5070-
| main.rs:2637:18:2637:22 | SelfParam | | file://:0:0:0:0 | & |
5071-
| main.rs:2637:18:2637:22 | SelfParam | &T | main.rs:2624:5:2624:25 | PathBuf |
5072-
| main.rs:2637:34:2641:9 | { ... } | | file://:0:0:0:0 | & |
5073-
| main.rs:2637:34:2641:9 | { ... } | &T | main.rs:2612:5:2612:22 | Path |
5074-
| main.rs:2639:33:2639:43 | ...::new(...) | | main.rs:2612:5:2612:22 | Path |
5075-
| main.rs:2640:13:2640:17 | &path | | file://:0:0:0:0 | & |
5076-
| main.rs:2640:13:2640:17 | &path | &T | main.rs:2612:5:2612:22 | Path |
5077-
| main.rs:2640:14:2640:17 | path | | main.rs:2612:5:2612:22 | Path |
5078-
| main.rs:2645:13:2645:17 | path1 | | main.rs:2612:5:2612:22 | Path |
5079-
| main.rs:2645:21:2645:31 | ...::new(...) | | main.rs:2612:5:2612:22 | Path |
5080-
| main.rs:2646:13:2646:17 | path2 | | {EXTERNAL LOCATION} | Result |
5081-
| main.rs:2646:13:2646:17 | path2 | E | file://:0:0:0:0 | () |
5082-
| main.rs:2646:13:2646:17 | path2 | T | main.rs:2624:5:2624:25 | PathBuf |
5083-
| main.rs:2646:21:2646:25 | path1 | | main.rs:2612:5:2612:22 | Path |
5084-
| main.rs:2646:21:2646:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result |
5085-
| main.rs:2646:21:2646:40 | path1.canonicalize() | E | file://:0:0:0:0 | () |
5086-
| main.rs:2646:21:2646:40 | path1.canonicalize() | T | main.rs:2624:5:2624:25 | PathBuf |
5087-
| main.rs:2647:13:2647:17 | path3 | | main.rs:2624:5:2624:25 | PathBuf |
5088-
| main.rs:2647:21:2647:25 | path2 | | {EXTERNAL LOCATION} | Result |
5089-
| main.rs:2647:21:2647:25 | path2 | E | file://:0:0:0:0 | () |
5090-
| main.rs:2647:21:2647:25 | path2 | T | main.rs:2624:5:2624:25 | PathBuf |
5091-
| main.rs:2647:21:2647:34 | path2.unwrap() | | main.rs:2624:5:2624:25 | PathBuf |
5092-
| main.rs:2649:13:2649:20 | pathbuf1 | | main.rs:2624:5:2624:25 | PathBuf |
5093-
| main.rs:2649:24:2649:37 | ...::new(...) | | main.rs:2624:5:2624:25 | PathBuf |
5094-
| main.rs:2650:24:2650:31 | pathbuf1 | | main.rs:2624:5:2624:25 | PathBuf |
5095-
| main.rs:2662:5:2662:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo |
5096-
| main.rs:2663:5:2663:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo |
5097-
| main.rs:2663:20:2663:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo |
5098-
| main.rs:2663:41:2663:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo |
5099-
| main.rs:2679:5:2679:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future |
5057+
| main.rs:2578:36:2580:9 | { ... } | | main.rs:2575:5:2575:22 | Path |
5058+
| main.rs:2579:13:2579:19 | Path {...} | | main.rs:2575:5:2575:22 | Path |
5059+
| main.rs:2582:29:2582:33 | SelfParam | | file://:0:0:0:0 | & |
5060+
| main.rs:2582:29:2582:33 | SelfParam | &T | main.rs:2575:5:2575:22 | Path |
5061+
| main.rs:2582:59:2584:9 | { ... } | | {EXTERNAL LOCATION} | Result |
5062+
| main.rs:2582:59:2584:9 | { ... } | E | file://:0:0:0:0 | () |
5063+
| main.rs:2582:59:2584:9 | { ... } | T | main.rs:2587:5:2587:25 | PathBuf |
5064+
| main.rs:2583:13:2583:30 | Ok(...) | | {EXTERNAL LOCATION} | Result |
5065+
| main.rs:2583:13:2583:30 | Ok(...) | E | file://:0:0:0:0 | () |
5066+
| main.rs:2583:13:2583:30 | Ok(...) | T | main.rs:2587:5:2587:25 | PathBuf |
5067+
| main.rs:2583:16:2583:29 | ...::new(...) | | main.rs:2587:5:2587:25 | PathBuf |
5068+
| main.rs:2590:39:2592:9 | { ... } | | main.rs:2587:5:2587:25 | PathBuf |
5069+
| main.rs:2591:13:2591:22 | PathBuf {...} | | main.rs:2587:5:2587:25 | PathBuf |
5070+
| main.rs:2600:18:2600:22 | SelfParam | | file://:0:0:0:0 | & |
5071+
| main.rs:2600:18:2600:22 | SelfParam | &T | main.rs:2587:5:2587:25 | PathBuf |
5072+
| main.rs:2600:34:2604:9 | { ... } | | file://:0:0:0:0 | & |
5073+
| main.rs:2600:34:2604:9 | { ... } | &T | main.rs:2575:5:2575:22 | Path |
5074+
| main.rs:2602:33:2602:43 | ...::new(...) | | main.rs:2575:5:2575:22 | Path |
5075+
| main.rs:2603:13:2603:17 | &path | | file://:0:0:0:0 | & |
5076+
| main.rs:2603:13:2603:17 | &path | &T | main.rs:2575:5:2575:22 | Path |
5077+
| main.rs:2603:14:2603:17 | path | | main.rs:2575:5:2575:22 | Path |
5078+
| main.rs:2608:13:2608:17 | path1 | | main.rs:2575:5:2575:22 | Path |
5079+
| main.rs:2608:21:2608:31 | ...::new(...) | | main.rs:2575:5:2575:22 | Path |
5080+
| main.rs:2609:13:2609:17 | path2 | | {EXTERNAL LOCATION} | Result |
5081+
| main.rs:2609:13:2609:17 | path2 | E | file://:0:0:0:0 | () |
5082+
| main.rs:2609:13:2609:17 | path2 | T | main.rs:2587:5:2587:25 | PathBuf |
5083+
| main.rs:2609:21:2609:25 | path1 | | main.rs:2575:5:2575:22 | Path |
5084+
| main.rs:2609:21:2609:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result |
5085+
| main.rs:2609:21:2609:40 | path1.canonicalize() | E | file://:0:0:0:0 | () |
5086+
| main.rs:2609:21:2609:40 | path1.canonicalize() | T | main.rs:2587:5:2587:25 | PathBuf |
5087+
| main.rs:2610:13:2610:17 | path3 | | main.rs:2587:5:2587:25 | PathBuf |
5088+
| main.rs:2610:21:2610:25 | path2 | | {EXTERNAL LOCATION} | Result |
5089+
| main.rs:2610:21:2610:25 | path2 | E | file://:0:0:0:0 | () |
5090+
| main.rs:2610:21:2610:25 | path2 | T | main.rs:2587:5:2587:25 | PathBuf |
5091+
| main.rs:2610:21:2610:34 | path2.unwrap() | | main.rs:2587:5:2587:25 | PathBuf |
5092+
| main.rs:2612:13:2612:20 | pathbuf1 | | main.rs:2587:5:2587:25 | PathBuf |
5093+
| main.rs:2612:24:2612:37 | ...::new(...) | | main.rs:2587:5:2587:25 | PathBuf |
5094+
| main.rs:2613:24:2613:31 | pathbuf1 | | main.rs:2587:5:2587:25 | PathBuf |
5095+
| main.rs:2625:5:2625:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo |
5096+
| main.rs:2626:5:2626:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo |
5097+
| main.rs:2626:20:2626:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo |
5098+
| main.rs:2626:41:2626:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo |
5099+
| main.rs:2642:5:2642:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future |
51005100
| pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option |
51015101
| pattern_matching.rs:13:26:133:1 | { ... } | T | file://:0:0:0:0 | () |
51025102
| pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option |

0 commit comments

Comments
 (0)