mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 22:01:37 +00:00
Add manual ops::Add impls to test::traits::closure_2
This commit is contained in:
parent
252eb78dc3
commit
d9554c258b
1 changed files with 46 additions and 20 deletions
|
@ -1919,10 +1919,26 @@ fn closure_1() {
|
||||||
fn closure_2() {
|
fn closure_2() {
|
||||||
check_infer_with_mismatches(
|
check_infer_with_mismatches(
|
||||||
r#"
|
r#"
|
||||||
|
#[lang = "add"]
|
||||||
|
pub trait Add<Rhs = Self> {
|
||||||
|
type Output;
|
||||||
|
fn add(self, rhs: Rhs) -> Self::Output;
|
||||||
|
}
|
||||||
|
|
||||||
trait FnOnce<Args> {
|
trait FnOnce<Args> {
|
||||||
type Output;
|
type Output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Add for u64 {
|
||||||
|
type Output = Self;
|
||||||
|
fn add(self, rhs: u64) -> Self::Output {0}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Add for u128 {
|
||||||
|
type Output = Self;
|
||||||
|
fn add(self, rhs: u128) -> Self::Output {0}
|
||||||
|
}
|
||||||
|
|
||||||
fn test<F: FnOnce(u32) -> u64>(f: F) {
|
fn test<F: FnOnce(u32) -> u64>(f: F) {
|
||||||
f(1);
|
f(1);
|
||||||
let g = |v| v + 1;
|
let g = |v| v + 1;
|
||||||
|
@ -1931,26 +1947,36 @@ fn closure_2() {
|
||||||
}
|
}
|
||||||
"#,
|
"#,
|
||||||
expect![[r#"
|
expect![[r#"
|
||||||
72..73 'f': F
|
72..76 'self': Self
|
||||||
78..154 '{ ...+ v; }': ()
|
78..81 'rhs': Rhs
|
||||||
84..85 'f': F
|
203..207 'self': u64
|
||||||
84..88 'f(1)': {unknown}
|
209..212 'rhs': u64
|
||||||
86..87 '1': i32
|
235..238 '{0}': u64
|
||||||
98..99 'g': |u64| -> {unknown}
|
236..237 '0': u64
|
||||||
102..111 '|v| v + 1': |u64| -> {unknown}
|
297..301 'self': u128
|
||||||
103..104 'v': u64
|
303..306 'rhs': u128
|
||||||
106..107 'v': u64
|
330..333 '{0}': u128
|
||||||
106..111 'v + 1': {unknown}
|
331..332 '0': u128
|
||||||
110..111 '1': i32
|
368..369 'f': F
|
||||||
117..118 'g': |u64| -> {unknown}
|
374..450 '{ ...+ v; }': ()
|
||||||
117..124 'g(1u64)': {unknown}
|
380..381 'f': F
|
||||||
119..123 '1u64': u64
|
380..384 'f(1)': {unknown}
|
||||||
134..135 'h': |u128| -> u128
|
382..383 '1': i32
|
||||||
138..151 '|v| 1u128 + v': |u128| -> u128
|
394..395 'g': |u64| -> u64
|
||||||
139..140 'v': u128
|
398..407 '|v| v + 1': |u64| -> u64
|
||||||
142..147 '1u128': u128
|
399..400 'v': u64
|
||||||
142..151 '1u128 + v': u128
|
402..403 'v': u64
|
||||||
150..151 'v': u128
|
402..407 'v + 1': u64
|
||||||
|
406..407 '1': u64
|
||||||
|
413..414 'g': |u64| -> u64
|
||||||
|
413..420 'g(1u64)': u64
|
||||||
|
415..419 '1u64': u64
|
||||||
|
430..431 'h': |u128| -> u128
|
||||||
|
434..447 '|v| 1u128 + v': |u128| -> u128
|
||||||
|
435..436 'v': u128
|
||||||
|
438..443 '1u128': u128
|
||||||
|
438..447 '1u128 + v': u128
|
||||||
|
446..447 'v': u128
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue