From 8ca02acb5a574c312dcb3842904b99b282d45883 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 28 Jan 2018 18:53:53 +0300 Subject: Generic params in structs --- tests/data/parser/ok/0018_struct_type_params.rs | 17 ++ tests/data/parser/ok/0018_struct_type_params.txt | 223 +++++++++++++++++++++++ 2 files changed, 240 insertions(+) create mode 100644 tests/data/parser/ok/0018_struct_type_params.rs create mode 100644 tests/data/parser/ok/0018_struct_type_params.txt (limited to 'tests/data/parser/ok') diff --git a/tests/data/parser/ok/0018_struct_type_params.rs b/tests/data/parser/ok/0018_struct_type_params.rs new file mode 100644 index 000000000..88c544923 --- /dev/null +++ b/tests/data/parser/ok/0018_struct_type_params.rs @@ -0,0 +1,17 @@ +struct S1; +struct S2(u32); +struct S3 { u: u32 } + +struct S4<>; +struct S5<'a>; +struct S6<'a:>; +struct S7<'a: 'b>; +struct S8<'a: 'b + >; +struct S9<'a: 'b + 'c>; +struct S10<'a,>; +struct S11<'a, 'b>; +struct S12<'a: 'b+, 'b: 'c,>; + +struct S13; +struct S14; +struct S15<'a, T, U>; diff --git a/tests/data/parser/ok/0018_struct_type_params.txt b/tests/data/parser/ok/0018_struct_type_params.txt new file mode 100644 index 000000000..b2e7ef9d7 --- /dev/null +++ b/tests/data/parser/ok/0018_struct_type_params.txt @@ -0,0 +1,223 @@ +FILE@[0; 290) + STRUCT_ITEM@[0; 14) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + IDENT@[7; 9) + TYPE_PARAM_LIST@[9; 12) + L_ANGLE@[9; 10) + TYPE_PARAM@[10; 11) + IDENT@[10; 11) + R_ANGLE@[11; 12) + SEMI@[12; 13) + WHITESPACE@[13; 14) + STRUCT_ITEM@[14; 33) + STRUCT_KW@[14; 20) + WHITESPACE@[20; 21) + IDENT@[21; 23) + TYPE_PARAM_LIST@[23; 26) + L_ANGLE@[23; 24) + TYPE_PARAM@[24; 25) + IDENT@[24; 25) + R_ANGLE@[25; 26) + L_PAREN@[26; 27) + POS_FIELD@[27; 30) + IDENT@[27; 30) + R_PAREN@[30; 31) + SEMI@[31; 32) + WHITESPACE@[32; 33) + STRUCT_ITEM@[33; 58) + STRUCT_KW@[33; 39) + WHITESPACE@[39; 40) + IDENT@[40; 42) + TYPE_PARAM_LIST@[42; 46) + L_ANGLE@[42; 43) + TYPE_PARAM@[43; 44) + IDENT@[43; 44) + R_ANGLE@[44; 45) + WHITESPACE@[45; 46) + L_CURLY@[46; 47) + NAMED_FIELD@[47; 55) + WHITESPACE@[47; 48) + IDENT@[48; 49) + COLON@[49; 50) + WHITESPACE@[50; 51) + IDENT@[51; 54) + WHITESPACE@[54; 55) + R_CURLY@[55; 56) + WHITESPACE@[56; 58) + STRUCT_ITEM@[58; 71) + STRUCT_KW@[58; 64) + WHITESPACE@[64; 65) + IDENT@[65; 67) + TYPE_PARAM_LIST@[67; 69) + L_ANGLE@[67; 68) + R_ANGLE@[68; 69) + SEMI@[69; 70) + WHITESPACE@[70; 71) + STRUCT_ITEM@[71; 86) + STRUCT_KW@[71; 77) + WHITESPACE@[77; 78) + IDENT@[78; 80) + TYPE_PARAM_LIST@[80; 84) + L_ANGLE@[80; 81) + LIFETIME_PARAM@[81; 83) + LIFETIME@[81; 83) + R_ANGLE@[83; 84) + SEMI@[84; 85) + WHITESPACE@[85; 86) + STRUCT_ITEM@[86; 102) + STRUCT_KW@[86; 92) + WHITESPACE@[92; 93) + IDENT@[93; 95) + TYPE_PARAM_LIST@[95; 100) + L_ANGLE@[95; 96) + LIFETIME_PARAM@[96; 99) + LIFETIME@[96; 98) + COLON@[98; 99) + R_ANGLE@[99; 100) + SEMI@[100; 101) + WHITESPACE@[101; 102) + STRUCT_ITEM@[102; 121) + STRUCT_KW@[102; 108) + WHITESPACE@[108; 109) + IDENT@[109; 111) + TYPE_PARAM_LIST@[111; 119) + L_ANGLE@[111; 112) + LIFETIME_PARAM@[112; 118) + LIFETIME@[112; 114) + COLON@[114; 115) + WHITESPACE@[115; 116) + LIFETIME@[116; 118) + R_ANGLE@[118; 119) + SEMI@[119; 120) + WHITESPACE@[120; 121) + STRUCT_ITEM@[121; 143) + STRUCT_KW@[121; 127) + WHITESPACE@[127; 128) + IDENT@[128; 130) + TYPE_PARAM_LIST@[130; 141) + L_ANGLE@[130; 131) + LIFETIME_PARAM@[131; 140) + LIFETIME@[131; 133) + COLON@[133; 134) + WHITESPACE@[134; 135) + LIFETIME@[135; 137) + WHITESPACE@[137; 138) + PLUS@[138; 139) + WHITESPACE@[139; 140) + R_ANGLE@[140; 141) + SEMI@[141; 142) + WHITESPACE@[142; 143) + STRUCT_ITEM@[143; 167) + STRUCT_KW@[143; 149) + WHITESPACE@[149; 150) + IDENT@[150; 152) + TYPE_PARAM_LIST@[152; 165) + L_ANGLE@[152; 153) + LIFETIME_PARAM@[153; 164) + LIFETIME@[153; 155) + COLON@[155; 156) + WHITESPACE@[156; 157) + LIFETIME@[157; 159) + WHITESPACE@[159; 160) + PLUS@[160; 161) + WHITESPACE@[161; 162) + LIFETIME@[162; 164) + R_ANGLE@[164; 165) + SEMI@[165; 166) + WHITESPACE@[166; 167) + STRUCT_ITEM@[167; 184) + STRUCT_KW@[167; 173) + WHITESPACE@[173; 174) + IDENT@[174; 177) + TYPE_PARAM_LIST@[177; 182) + L_ANGLE@[177; 178) + LIFETIME_PARAM@[178; 180) + LIFETIME@[178; 180) + COMMA@[180; 181) + R_ANGLE@[181; 182) + SEMI@[182; 183) + WHITESPACE@[183; 184) + STRUCT_ITEM@[184; 204) + STRUCT_KW@[184; 190) + WHITESPACE@[190; 191) + IDENT@[191; 194) + TYPE_PARAM_LIST@[194; 202) + L_ANGLE@[194; 195) + LIFETIME_PARAM@[195; 197) + LIFETIME@[195; 197) + COMMA@[197; 198) + LIFETIME_PARAM@[198; 201) + WHITESPACE@[198; 199) + LIFETIME@[199; 201) + R_ANGLE@[201; 202) + SEMI@[202; 203) + WHITESPACE@[203; 204) + STRUCT_ITEM@[204; 235) + STRUCT_KW@[204; 210) + WHITESPACE@[210; 211) + IDENT@[211; 214) + TYPE_PARAM_LIST@[214; 232) + L_ANGLE@[214; 215) + LIFETIME_PARAM@[215; 222) + LIFETIME@[215; 217) + COLON@[217; 218) + WHITESPACE@[218; 219) + LIFETIME@[219; 221) + PLUS@[221; 222) + COMMA@[222; 223) + LIFETIME_PARAM@[223; 230) + WHITESPACE@[223; 224) + LIFETIME@[224; 226) + COLON@[226; 227) + WHITESPACE@[227; 228) + LIFETIME@[228; 230) + COMMA@[230; 231) + R_ANGLE@[231; 232) + SEMI@[232; 233) + WHITESPACE@[233; 235) + STRUCT_ITEM@[235; 250) + STRUCT_KW@[235; 241) + WHITESPACE@[241; 242) + IDENT@[242; 245) + TYPE_PARAM_LIST@[245; 248) + L_ANGLE@[245; 246) + TYPE_PARAM@[246; 247) + IDENT@[246; 247) + R_ANGLE@[247; 248) + SEMI@[248; 249) + WHITESPACE@[249; 250) + STRUCT_ITEM@[250; 268) + STRUCT_KW@[250; 256) + WHITESPACE@[256; 257) + IDENT@[257; 260) + TYPE_PARAM_LIST@[260; 266) + L_ANGLE@[260; 261) + TYPE_PARAM@[261; 262) + IDENT@[261; 262) + COMMA@[262; 263) + TYPE_PARAM@[263; 265) + WHITESPACE@[263; 264) + IDENT@[264; 265) + R_ANGLE@[265; 266) + SEMI@[266; 267) + WHITESPACE@[267; 268) + STRUCT_ITEM@[268; 290) + STRUCT_KW@[268; 274) + WHITESPACE@[274; 275) + IDENT@[275; 278) + TYPE_PARAM_LIST@[278; 288) + L_ANGLE@[278; 279) + LIFETIME_PARAM@[279; 281) + LIFETIME@[279; 281) + COMMA@[281; 282) + TYPE_PARAM@[282; 284) + WHITESPACE@[282; 283) + IDENT@[283; 284) + COMMA@[284; 285) + TYPE_PARAM@[285; 287) + WHITESPACE@[285; 286) + IDENT@[286; 287) + R_ANGLE@[287; 288) + SEMI@[288; 289) + WHITESPACE@[289; 290) -- cgit v1.2.3