Lifetimes in self param
This commit is contained in:
parent
599ca1ad89
commit
f4c106f86a
@ -126,15 +126,19 @@ fn fn_value_parameters(p: &mut Parser) {
|
||||
// impl S {
|
||||
// fn a(self) {}
|
||||
// fn b(&self,) {}
|
||||
// fn c(&mut self, x: i32) {}
|
||||
// fn c(&'a self,) {}
|
||||
// fn d(&'a mut self, x: i32) {}
|
||||
// }
|
||||
fn self_param(p: &mut Parser) {
|
||||
let la1 = p.nth(1);
|
||||
let la2 = p.nth(2);
|
||||
let n_toks = match (p.current(), la1, la2) {
|
||||
(SELF_KW, _, _) => 1,
|
||||
(AMPERSAND, SELF_KW, _) => 2,
|
||||
(AMPERSAND, MUT_KW, SELF_KW) => 3,
|
||||
let la3 = p.nth(3);
|
||||
let n_toks = match (p.current(), la1, la2, la3) {
|
||||
(SELF_KW, _, _, _) => 1,
|
||||
(AMPERSAND, SELF_KW, _, _) => 2,
|
||||
(AMPERSAND, MUT_KW, SELF_KW, _) => 3,
|
||||
(AMPERSAND, LIFETIME, SELF_KW, _) => 3,
|
||||
(AMPERSAND, LIFETIME, MUT_KW, SELF_KW) => 4,
|
||||
_ => return,
|
||||
};
|
||||
let m = p.start();
|
||||
|
@ -1,5 +1,6 @@
|
||||
impl S {
|
||||
fn a(self) {}
|
||||
fn b(&self,) {}
|
||||
fn c(&mut self, x: i32) {}
|
||||
fn c(&'a self,) {}
|
||||
fn d(&'a mut self, x: i32) {}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
FILE@[0; 80)
|
||||
IMPL_ITEM@[0; 80)
|
||||
FILE@[0; 106)
|
||||
IMPL_ITEM@[0; 106)
|
||||
IMPL_KW@[0; 4)
|
||||
PATH_TYPE@[4; 7)
|
||||
PATH@[4; 7)
|
||||
@ -42,36 +42,57 @@ FILE@[0; 80)
|
||||
L_CURLY@[44; 45)
|
||||
R_CURLY@[45; 46)
|
||||
WHITESPACE@[46; 51)
|
||||
FN_ITEM@[51; 78)
|
||||
FN_ITEM@[51; 74)
|
||||
FN_KW@[51; 53)
|
||||
NAME@[53; 55)
|
||||
WHITESPACE@[53; 54)
|
||||
IDENT@[54; 55) "c"
|
||||
PARAM_LIST@[55; 75)
|
||||
PARAM_LIST@[55; 67)
|
||||
L_PAREN@[55; 56)
|
||||
SELF_PARAM@[56; 65)
|
||||
SELF_PARAM@[56; 64)
|
||||
AMPERSAND@[56; 57)
|
||||
MUT_KW@[57; 60)
|
||||
WHITESPACE@[60; 61)
|
||||
SELF_KW@[61; 65)
|
||||
COMMA@[65; 66)
|
||||
VALUE_PARAMETER@[66; 73)
|
||||
BIND_PAT@[66; 68)
|
||||
NAME@[66; 68)
|
||||
WHITESPACE@[66; 67)
|
||||
IDENT@[67; 68) "x"
|
||||
COLON@[68; 69)
|
||||
PATH_TYPE@[69; 73)
|
||||
PATH@[69; 73)
|
||||
PATH_SEGMENT@[69; 73)
|
||||
NAME_REF@[69; 73)
|
||||
WHITESPACE@[69; 70)
|
||||
IDENT@[70; 73) "i32"
|
||||
R_PAREN@[73; 74)
|
||||
WHITESPACE@[74; 75)
|
||||
BLOCK@[75; 78)
|
||||
L_CURLY@[75; 76)
|
||||
R_CURLY@[76; 77)
|
||||
WHITESPACE@[77; 78)
|
||||
R_CURLY@[78; 79)
|
||||
WHITESPACE@[79; 80)
|
||||
LIFETIME@[57; 59) "'a"
|
||||
WHITESPACE@[59; 60)
|
||||
SELF_KW@[60; 64)
|
||||
COMMA@[64; 65)
|
||||
R_PAREN@[65; 66)
|
||||
WHITESPACE@[66; 67)
|
||||
BLOCK@[67; 74)
|
||||
L_CURLY@[67; 68)
|
||||
R_CURLY@[68; 69)
|
||||
WHITESPACE@[69; 74)
|
||||
FN_ITEM@[74; 104)
|
||||
FN_KW@[74; 76)
|
||||
NAME@[76; 78)
|
||||
WHITESPACE@[76; 77)
|
||||
IDENT@[77; 78) "d"
|
||||
PARAM_LIST@[78; 101)
|
||||
L_PAREN@[78; 79)
|
||||
SELF_PARAM@[79; 91)
|
||||
AMPERSAND@[79; 80)
|
||||
LIFETIME@[80; 82) "'a"
|
||||
WHITESPACE@[82; 83)
|
||||
MUT_KW@[83; 86)
|
||||
WHITESPACE@[86; 87)
|
||||
SELF_KW@[87; 91)
|
||||
COMMA@[91; 92)
|
||||
VALUE_PARAMETER@[92; 99)
|
||||
BIND_PAT@[92; 94)
|
||||
NAME@[92; 94)
|
||||
WHITESPACE@[92; 93)
|
||||
IDENT@[93; 94) "x"
|
||||
COLON@[94; 95)
|
||||
PATH_TYPE@[95; 99)
|
||||
PATH@[95; 99)
|
||||
PATH_SEGMENT@[95; 99)
|
||||
NAME_REF@[95; 99)
|
||||
WHITESPACE@[95; 96)
|
||||
IDENT@[96; 99) "i32"
|
||||
R_PAREN@[99; 100)
|
||||
WHITESPACE@[100; 101)
|
||||
BLOCK@[101; 104)
|
||||
L_CURLY@[101; 102)
|
||||
R_CURLY@[102; 103)
|
||||
WHITESPACE@[103; 104)
|
||||
R_CURLY@[104; 105)
|
||||
WHITESPACE@[105; 106)
|
||||
|
Loading…
x
Reference in New Issue
Block a user