mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-25 12:33:33 +00:00
extern blocks
This commit is contained in:
parent
952da31f44
commit
c3e28f0646
8 changed files with 1032 additions and 8 deletions
|
@ -227,6 +227,7 @@ fn extern_item_list(p: &mut Parser) {
|
|||
assert!(p.at(L_CURLY));
|
||||
let m = p.start();
|
||||
p.bump();
|
||||
mod_contents(p, true);
|
||||
p.expect(R_CURLY);
|
||||
m.complete(p, EXTERN_ITEM_LIST);
|
||||
}
|
||||
|
|
|
@ -127,7 +127,8 @@ fn validate_block_structure(root: SyntaxNodeRef) {
|
|||
assert_eq!(
|
||||
node.parent(),
|
||||
pair.parent(),
|
||||
"\nunpaired curleys:\n{}",
|
||||
"\nunpaired curleys:\n{}\n{}\n",
|
||||
root.text(),
|
||||
utils::dump_tree(root),
|
||||
);
|
||||
assert!(
|
||||
|
|
29
crates/libsyntax2/tests/data/parser/ok/0031_extern.rs
Normal file
29
crates/libsyntax2/tests/data/parser/ok/0031_extern.rs
Normal file
|
@ -0,0 +1,29 @@
|
|||
extern {
|
||||
pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int;
|
||||
pub fn bind(fd: ::c_int, addr: *const sockaddr, len: socklen_t) -> ::c_int;
|
||||
pub fn connect(socket: ::c_int, address: *const sockaddr,
|
||||
len: socklen_t) -> ::c_int;
|
||||
pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int;
|
||||
pub fn getsockname(socket: ::c_int, address: *mut sockaddr,
|
||||
address_len: *mut socklen_t) -> ::c_int;
|
||||
pub fn getsockopt(sockfd: ::c_int,
|
||||
level: ::c_int,
|
||||
optname: ::c_int,
|
||||
optval: *mut ::c_void,
|
||||
optlen: *mut ::socklen_t) -> ::c_int;
|
||||
pub fn setsockopt(socket: ::c_int, level: ::c_int, name: ::c_int,
|
||||
value: *const ::c_void,
|
||||
option_len: socklen_t) -> ::c_int;
|
||||
pub fn getpeername(socket: ::c_int, address: *mut sockaddr,
|
||||
address_len: *mut socklen_t) -> ::c_int;
|
||||
pub fn sendto(socket: ::c_int, buf: *const ::c_void, len: ::size_t,
|
||||
flags: ::c_int, addr: *const sockaddr,
|
||||
addrlen: socklen_t) -> ::ssize_t;
|
||||
pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t,
|
||||
flags: ::c_int) -> ::ssize_t;
|
||||
pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t,
|
||||
flags: ::c_int, addr: *mut ::sockaddr,
|
||||
addrlen: *mut ::socklen_t) -> ::ssize_t;
|
||||
pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t,
|
||||
flags: ::c_int) -> ::ssize_t;
|
||||
}
|
973
crates/libsyntax2/tests/data/parser/ok/0031_extern.txt
Normal file
973
crates/libsyntax2/tests/data/parser/ok/0031_extern.txt
Normal file
|
@ -0,0 +1,973 @@
|
|||
ROOT@[0; 1598)
|
||||
EXTERN_BLOCK@[0; 1597)
|
||||
ABI@[0; 6)
|
||||
EXTERN_KW@[0; 6)
|
||||
WHITESPACE@[6; 7)
|
||||
EXTERN_ITEM_LIST@[7; 1597)
|
||||
L_CURLY@[7; 8)
|
||||
WHITESPACE@[8; 13)
|
||||
FN_DEF@[13; 87)
|
||||
VISIBILITY@[13; 16)
|
||||
PUB_KW@[13; 16)
|
||||
WHITESPACE@[16; 17)
|
||||
FN_KW@[17; 19)
|
||||
WHITESPACE@[19; 20)
|
||||
NAME@[20; 26)
|
||||
IDENT@[20; 26) "socket"
|
||||
PARAM_LIST@[26; 75)
|
||||
L_PAREN@[26; 27)
|
||||
PARAM@[27; 42)
|
||||
BIND_PAT@[27; 33)
|
||||
NAME@[27; 33)
|
||||
IDENT@[27; 33) "domain"
|
||||
COLON@[33; 34)
|
||||
WHITESPACE@[34; 35)
|
||||
PATH_TYPE@[35; 42)
|
||||
PATH@[35; 42)
|
||||
PATH_SEGMENT@[35; 42)
|
||||
COLONCOLON@[35; 37)
|
||||
NAME_REF@[37; 42)
|
||||
IDENT@[37; 42) "c_int"
|
||||
COMMA@[42; 43)
|
||||
WHITESPACE@[43; 44)
|
||||
PARAM@[44; 55)
|
||||
BIND_PAT@[44; 46)
|
||||
NAME@[44; 46)
|
||||
IDENT@[44; 46) "ty"
|
||||
COLON@[46; 47)
|
||||
WHITESPACE@[47; 48)
|
||||
PATH_TYPE@[48; 55)
|
||||
PATH@[48; 55)
|
||||
PATH_SEGMENT@[48; 55)
|
||||
COLONCOLON@[48; 50)
|
||||
NAME_REF@[50; 55)
|
||||
IDENT@[50; 55) "c_int"
|
||||
COMMA@[55; 56)
|
||||
WHITESPACE@[56; 57)
|
||||
PARAM@[57; 74)
|
||||
BIND_PAT@[57; 65)
|
||||
NAME@[57; 65)
|
||||
IDENT@[57; 65) "protocol"
|
||||
COLON@[65; 66)
|
||||
WHITESPACE@[66; 67)
|
||||
PATH_TYPE@[67; 74)
|
||||
PATH@[67; 74)
|
||||
PATH_SEGMENT@[67; 74)
|
||||
COLONCOLON@[67; 69)
|
||||
NAME_REF@[69; 74)
|
||||
IDENT@[69; 74) "c_int"
|
||||
R_PAREN@[74; 75)
|
||||
WHITESPACE@[75; 76)
|
||||
RET_TYPE@[76; 86)
|
||||
THIN_ARROW@[76; 78)
|
||||
WHITESPACE@[78; 79)
|
||||
PATH_TYPE@[79; 86)
|
||||
PATH@[79; 86)
|
||||
PATH_SEGMENT@[79; 86)
|
||||
COLONCOLON@[79; 81)
|
||||
NAME_REF@[81; 86)
|
||||
IDENT@[81; 86) "c_int"
|
||||
SEMI@[86; 87)
|
||||
WHITESPACE@[87; 92)
|
||||
FN_DEF@[92; 167)
|
||||
VISIBILITY@[92; 95)
|
||||
PUB_KW@[92; 95)
|
||||
WHITESPACE@[95; 96)
|
||||
FN_KW@[96; 98)
|
||||
WHITESPACE@[98; 99)
|
||||
NAME@[99; 103)
|
||||
IDENT@[99; 103) "bind"
|
||||
PARAM_LIST@[103; 155)
|
||||
L_PAREN@[103; 104)
|
||||
PARAM@[104; 115)
|
||||
BIND_PAT@[104; 106)
|
||||
NAME@[104; 106)
|
||||
IDENT@[104; 106) "fd"
|
||||
COLON@[106; 107)
|
||||
WHITESPACE@[107; 108)
|
||||
PATH_TYPE@[108; 115)
|
||||
PATH@[108; 115)
|
||||
PATH_SEGMENT@[108; 115)
|
||||
COLONCOLON@[108; 110)
|
||||
NAME_REF@[110; 115)
|
||||
IDENT@[110; 115) "c_int"
|
||||
COMMA@[115; 116)
|
||||
WHITESPACE@[116; 117)
|
||||
PARAM@[117; 138)
|
||||
BIND_PAT@[117; 121)
|
||||
NAME@[117; 121)
|
||||
IDENT@[117; 121) "addr"
|
||||
COLON@[121; 122)
|
||||
WHITESPACE@[122; 123)
|
||||
POINTER_TYPE@[123; 138)
|
||||
STAR@[123; 124)
|
||||
CONST_KW@[124; 129)
|
||||
WHITESPACE@[129; 130)
|
||||
PATH_TYPE@[130; 138)
|
||||
PATH@[130; 138)
|
||||
PATH_SEGMENT@[130; 138)
|
||||
NAME_REF@[130; 138)
|
||||
IDENT@[130; 138) "sockaddr"
|
||||
COMMA@[138; 139)
|
||||
WHITESPACE@[139; 140)
|
||||
PARAM@[140; 154)
|
||||
BIND_PAT@[140; 143)
|
||||
NAME@[140; 143)
|
||||
IDENT@[140; 143) "len"
|
||||
COLON@[143; 144)
|
||||
WHITESPACE@[144; 145)
|
||||
PATH_TYPE@[145; 154)
|
||||
PATH@[145; 154)
|
||||
PATH_SEGMENT@[145; 154)
|
||||
NAME_REF@[145; 154)
|
||||
IDENT@[145; 154) "socklen_t"
|
||||
R_PAREN@[154; 155)
|
||||
WHITESPACE@[155; 156)
|
||||
RET_TYPE@[156; 166)
|
||||
THIN_ARROW@[156; 158)
|
||||
WHITESPACE@[158; 159)
|
||||
PATH_TYPE@[159; 166)
|
||||
PATH@[159; 166)
|
||||
PATH_SEGMENT@[159; 166)
|
||||
COLONCOLON@[159; 161)
|
||||
NAME_REF@[161; 166)
|
||||
IDENT@[161; 166) "c_int"
|
||||
SEMI@[166; 167)
|
||||
WHITESPACE@[167; 172)
|
||||
FN_DEF@[172; 276)
|
||||
VISIBILITY@[172; 175)
|
||||
PUB_KW@[172; 175)
|
||||
WHITESPACE@[175; 176)
|
||||
FN_KW@[176; 178)
|
||||
WHITESPACE@[178; 179)
|
||||
NAME@[179; 186)
|
||||
IDENT@[179; 186) "connect"
|
||||
PARAM_LIST@[186; 264)
|
||||
L_PAREN@[186; 187)
|
||||
PARAM@[187; 202)
|
||||
BIND_PAT@[187; 193)
|
||||
NAME@[187; 193)
|
||||
IDENT@[187; 193) "socket"
|
||||
COLON@[193; 194)
|
||||
WHITESPACE@[194; 195)
|
||||
PATH_TYPE@[195; 202)
|
||||
PATH@[195; 202)
|
||||
PATH_SEGMENT@[195; 202)
|
||||
COLONCOLON@[195; 197)
|
||||
NAME_REF@[197; 202)
|
||||
IDENT@[197; 202) "c_int"
|
||||
COMMA@[202; 203)
|
||||
WHITESPACE@[203; 204)
|
||||
PARAM@[204; 228)
|
||||
BIND_PAT@[204; 211)
|
||||
NAME@[204; 211)
|
||||
IDENT@[204; 211) "address"
|
||||
COLON@[211; 212)
|
||||
WHITESPACE@[212; 213)
|
||||
POINTER_TYPE@[213; 228)
|
||||
STAR@[213; 214)
|
||||
CONST_KW@[214; 219)
|
||||
WHITESPACE@[219; 220)
|
||||
PATH_TYPE@[220; 228)
|
||||
PATH@[220; 228)
|
||||
PATH_SEGMENT@[220; 228)
|
||||
NAME_REF@[220; 228)
|
||||
IDENT@[220; 228) "sockaddr"
|
||||
COMMA@[228; 229)
|
||||
WHITESPACE@[229; 249)
|
||||
PARAM@[249; 263)
|
||||
BIND_PAT@[249; 252)
|
||||
NAME@[249; 252)
|
||||
IDENT@[249; 252) "len"
|
||||
COLON@[252; 253)
|
||||
WHITESPACE@[253; 254)
|
||||
PATH_TYPE@[254; 263)
|
||||
PATH@[254; 263)
|
||||
PATH_SEGMENT@[254; 263)
|
||||
NAME_REF@[254; 263)
|
||||
IDENT@[254; 263) "socklen_t"
|
||||
R_PAREN@[263; 264)
|
||||
WHITESPACE@[264; 265)
|
||||
RET_TYPE@[265; 275)
|
||||
THIN_ARROW@[265; 267)
|
||||
WHITESPACE@[267; 268)
|
||||
PATH_TYPE@[268; 275)
|
||||
PATH@[268; 275)
|
||||
PATH_SEGMENT@[268; 275)
|
||||
COLONCOLON@[268; 270)
|
||||
NAME_REF@[270; 275)
|
||||
IDENT@[270; 275) "c_int"
|
||||
SEMI@[275; 276)
|
||||
WHITESPACE@[276; 281)
|
||||
FN_DEF@[281; 341)
|
||||
VISIBILITY@[281; 284)
|
||||
PUB_KW@[281; 284)
|
||||
WHITESPACE@[284; 285)
|
||||
FN_KW@[285; 287)
|
||||
WHITESPACE@[287; 288)
|
||||
NAME@[288; 294)
|
||||
IDENT@[288; 294) "listen"
|
||||
PARAM_LIST@[294; 329)
|
||||
L_PAREN@[294; 295)
|
||||
PARAM@[295; 310)
|
||||
BIND_PAT@[295; 301)
|
||||
NAME@[295; 301)
|
||||
IDENT@[295; 301) "socket"
|
||||
COLON@[301; 302)
|
||||
WHITESPACE@[302; 303)
|
||||
PATH_TYPE@[303; 310)
|
||||
PATH@[303; 310)
|
||||
PATH_SEGMENT@[303; 310)
|
||||
COLONCOLON@[303; 305)
|
||||
NAME_REF@[305; 310)
|
||||
IDENT@[305; 310) "c_int"
|
||||
COMMA@[310; 311)
|
||||
WHITESPACE@[311; 312)
|
||||
PARAM@[312; 328)
|
||||
BIND_PAT@[312; 319)
|
||||
NAME@[312; 319)
|
||||
IDENT@[312; 319) "backlog"
|
||||
COLON@[319; 320)
|
||||
WHITESPACE@[320; 321)
|
||||
PATH_TYPE@[321; 328)
|
||||
PATH@[321; 328)
|
||||
PATH_SEGMENT@[321; 328)
|
||||
COLONCOLON@[321; 323)
|
||||
NAME_REF@[323; 328)
|
||||
IDENT@[323; 328) "c_int"
|
||||
R_PAREN@[328; 329)
|
||||
WHITESPACE@[329; 330)
|
||||
RET_TYPE@[330; 340)
|
||||
THIN_ARROW@[330; 332)
|
||||
WHITESPACE@[332; 333)
|
||||
PATH_TYPE@[333; 340)
|
||||
PATH@[333; 340)
|
||||
PATH_SEGMENT@[333; 340)
|
||||
COLONCOLON@[333; 335)
|
||||
NAME_REF@[335; 340)
|
||||
IDENT@[335; 340) "c_int"
|
||||
SEMI@[340; 341)
|
||||
WHITESPACE@[341; 346)
|
||||
FN_DEF@[346; 469)
|
||||
VISIBILITY@[346; 349)
|
||||
PUB_KW@[346; 349)
|
||||
WHITESPACE@[349; 350)
|
||||
FN_KW@[350; 352)
|
||||
WHITESPACE@[352; 353)
|
||||
NAME@[353; 364)
|
||||
IDENT@[353; 364) "getsockname"
|
||||
PARAM_LIST@[364; 457)
|
||||
L_PAREN@[364; 365)
|
||||
PARAM@[365; 380)
|
||||
BIND_PAT@[365; 371)
|
||||
NAME@[365; 371)
|
||||
IDENT@[365; 371) "socket"
|
||||
COLON@[371; 372)
|
||||
WHITESPACE@[372; 373)
|
||||
PATH_TYPE@[373; 380)
|
||||
PATH@[373; 380)
|
||||
PATH_SEGMENT@[373; 380)
|
||||
COLONCOLON@[373; 375)
|
||||
NAME_REF@[375; 380)
|
||||
IDENT@[375; 380) "c_int"
|
||||
COMMA@[380; 381)
|
||||
WHITESPACE@[381; 382)
|
||||
PARAM@[382; 404)
|
||||
BIND_PAT@[382; 389)
|
||||
NAME@[382; 389)
|
||||
IDENT@[382; 389) "address"
|
||||
COLON@[389; 390)
|
||||
WHITESPACE@[390; 391)
|
||||
POINTER_TYPE@[391; 404)
|
||||
STAR@[391; 392)
|
||||
MUT_KW@[392; 395)
|
||||
WHITESPACE@[395; 396)
|
||||
PATH_TYPE@[396; 404)
|
||||
PATH@[396; 404)
|
||||
PATH_SEGMENT@[396; 404)
|
||||
NAME_REF@[396; 404)
|
||||
IDENT@[396; 404) "sockaddr"
|
||||
COMMA@[404; 405)
|
||||
WHITESPACE@[405; 429)
|
||||
PARAM@[429; 456)
|
||||
BIND_PAT@[429; 440)
|
||||
NAME@[429; 440)
|
||||
IDENT@[429; 440) "address_len"
|
||||
COLON@[440; 441)
|
||||
WHITESPACE@[441; 442)
|
||||
POINTER_TYPE@[442; 456)
|
||||
STAR@[442; 443)
|
||||
MUT_KW@[443; 446)
|
||||
WHITESPACE@[446; 447)
|
||||
PATH_TYPE@[447; 456)
|
||||
PATH@[447; 456)
|
||||
PATH_SEGMENT@[447; 456)
|
||||
NAME_REF@[447; 456)
|
||||
IDENT@[447; 456) "socklen_t"
|
||||
R_PAREN@[456; 457)
|
||||
WHITESPACE@[457; 458)
|
||||
RET_TYPE@[458; 468)
|
||||
THIN_ARROW@[458; 460)
|
||||
WHITESPACE@[460; 461)
|
||||
PATH_TYPE@[461; 468)
|
||||
PATH@[461; 468)
|
||||
PATH_SEGMENT@[461; 468)
|
||||
COLONCOLON@[461; 463)
|
||||
NAME_REF@[463; 468)
|
||||
IDENT@[463; 468) "c_int"
|
||||
SEMI@[468; 469)
|
||||
WHITESPACE@[469; 474)
|
||||
FN_DEF@[474; 691)
|
||||
VISIBILITY@[474; 477)
|
||||
PUB_KW@[474; 477)
|
||||
WHITESPACE@[477; 478)
|
||||
FN_KW@[478; 480)
|
||||
WHITESPACE@[480; 481)
|
||||
NAME@[481; 491)
|
||||
IDENT@[481; 491) "getsockopt"
|
||||
PARAM_LIST@[491; 679)
|
||||
L_PAREN@[491; 492)
|
||||
PARAM@[492; 507)
|
||||
BIND_PAT@[492; 498)
|
||||
NAME@[492; 498)
|
||||
IDENT@[492; 498) "sockfd"
|
||||
COLON@[498; 499)
|
||||
WHITESPACE@[499; 500)
|
||||
PATH_TYPE@[500; 507)
|
||||
PATH@[500; 507)
|
||||
PATH_SEGMENT@[500; 507)
|
||||
COLONCOLON@[500; 502)
|
||||
NAME_REF@[502; 507)
|
||||
IDENT@[502; 507) "c_int"
|
||||
COMMA@[507; 508)
|
||||
WHITESPACE@[508; 531)
|
||||
PARAM@[531; 545)
|
||||
BIND_PAT@[531; 536)
|
||||
NAME@[531; 536)
|
||||
IDENT@[531; 536) "level"
|
||||
COLON@[536; 537)
|
||||
WHITESPACE@[537; 538)
|
||||
PATH_TYPE@[538; 545)
|
||||
PATH@[538; 545)
|
||||
PATH_SEGMENT@[538; 545)
|
||||
COLONCOLON@[538; 540)
|
||||
NAME_REF@[540; 545)
|
||||
IDENT@[540; 545) "c_int"
|
||||
COMMA@[545; 546)
|
||||
WHITESPACE@[546; 569)
|
||||
PARAM@[569; 585)
|
||||
BIND_PAT@[569; 576)
|
||||
NAME@[569; 576)
|
||||
IDENT@[569; 576) "optname"
|
||||
COLON@[576; 577)
|
||||
WHITESPACE@[577; 578)
|
||||
PATH_TYPE@[578; 585)
|
||||
PATH@[578; 585)
|
||||
PATH_SEGMENT@[578; 585)
|
||||
COLONCOLON@[578; 580)
|
||||
NAME_REF@[580; 585)
|
||||
IDENT@[580; 585) "c_int"
|
||||
COMMA@[585; 586)
|
||||
WHITESPACE@[586; 609)
|
||||
PARAM@[609; 630)
|
||||
BIND_PAT@[609; 615)
|
||||
NAME@[609; 615)
|
||||
IDENT@[609; 615) "optval"
|
||||
COLON@[615; 616)
|
||||
WHITESPACE@[616; 617)
|
||||
POINTER_TYPE@[617; 630)
|
||||
STAR@[617; 618)
|
||||
MUT_KW@[618; 621)
|
||||
WHITESPACE@[621; 622)
|
||||
PATH_TYPE@[622; 630)
|
||||
PATH@[622; 630)
|
||||
PATH_SEGMENT@[622; 630)
|
||||
COLONCOLON@[622; 624)
|
||||
NAME_REF@[624; 630)
|
||||
IDENT@[624; 630) "c_void"
|
||||
COMMA@[630; 631)
|
||||
WHITESPACE@[631; 654)
|
||||
PARAM@[654; 678)
|
||||
BIND_PAT@[654; 660)
|
||||
NAME@[654; 660)
|
||||
IDENT@[654; 660) "optlen"
|
||||
COLON@[660; 661)
|
||||
WHITESPACE@[661; 662)
|
||||
POINTER_TYPE@[662; 678)
|
||||
STAR@[662; 663)
|
||||
MUT_KW@[663; 666)
|
||||
WHITESPACE@[666; 667)
|
||||
PATH_TYPE@[667; 678)
|
||||
PATH@[667; 678)
|
||||
PATH_SEGMENT@[667; 678)
|
||||
COLONCOLON@[667; 669)
|
||||
NAME_REF@[669; 678)
|
||||
IDENT@[669; 678) "socklen_t"
|
||||
R_PAREN@[678; 679)
|
||||
WHITESPACE@[679; 680)
|
||||
RET_TYPE@[680; 690)
|
||||
THIN_ARROW@[680; 682)
|
||||
WHITESPACE@[682; 683)
|
||||
PATH_TYPE@[683; 690)
|
||||
PATH@[683; 690)
|
||||
PATH_SEGMENT@[683; 690)
|
||||
COLONCOLON@[683; 685)
|
||||
NAME_REF@[685; 690)
|
||||
IDENT@[685; 690) "c_int"
|
||||
SEMI@[690; 691)
|
||||
WHITESPACE@[691; 696)
|
||||
FN_DEF@[696; 864)
|
||||
VISIBILITY@[696; 699)
|
||||
PUB_KW@[696; 699)
|
||||
WHITESPACE@[699; 700)
|
||||
FN_KW@[700; 702)
|
||||
WHITESPACE@[702; 703)
|
||||
NAME@[703; 713)
|
||||
IDENT@[703; 713) "setsockopt"
|
||||
PARAM_LIST@[713; 852)
|
||||
L_PAREN@[713; 714)
|
||||
PARAM@[714; 729)
|
||||
BIND_PAT@[714; 720)
|
||||
NAME@[714; 720)
|
||||
IDENT@[714; 720) "socket"
|
||||
COLON@[720; 721)
|
||||
WHITESPACE@[721; 722)
|
||||
PATH_TYPE@[722; 729)
|
||||
PATH@[722; 729)
|
||||
PATH_SEGMENT@[722; 729)
|
||||
COLONCOLON@[722; 724)
|
||||
NAME_REF@[724; 729)
|
||||
IDENT@[724; 729) "c_int"
|
||||
COMMA@[729; 730)
|
||||
WHITESPACE@[730; 731)
|
||||
PARAM@[731; 745)
|
||||
BIND_PAT@[731; 736)
|
||||
NAME@[731; 736)
|
||||
IDENT@[731; 736) "level"
|
||||
COLON@[736; 737)
|
||||
WHITESPACE@[737; 738)
|
||||
PATH_TYPE@[738; 745)
|
||||
PATH@[738; 745)
|
||||
PATH_SEGMENT@[738; 745)
|
||||
COLONCOLON@[738; 740)
|
||||
NAME_REF@[740; 745)
|
||||
IDENT@[740; 745) "c_int"
|
||||
COMMA@[745; 746)
|
||||
WHITESPACE@[746; 747)
|
||||
PARAM@[747; 760)
|
||||
BIND_PAT@[747; 751)
|
||||
NAME@[747; 751)
|
||||
IDENT@[747; 751) "name"
|
||||
COLON@[751; 752)
|
||||
WHITESPACE@[752; 753)
|
||||
PATH_TYPE@[753; 760)
|
||||
PATH@[753; 760)
|
||||
PATH_SEGMENT@[753; 760)
|
||||
COLONCOLON@[753; 755)
|
||||
NAME_REF@[755; 760)
|
||||
IDENT@[755; 760) "c_int"
|
||||
COMMA@[760; 761)
|
||||
WHITESPACE@[761; 784)
|
||||
PARAM@[784; 806)
|
||||
BIND_PAT@[784; 789)
|
||||
NAME@[784; 789)
|
||||
IDENT@[784; 789) "value"
|
||||
COLON@[789; 790)
|
||||
WHITESPACE@[790; 791)
|
||||
POINTER_TYPE@[791; 806)
|
||||
STAR@[791; 792)
|
||||
CONST_KW@[792; 797)
|
||||
WHITESPACE@[797; 798)
|
||||
PATH_TYPE@[798; 806)
|
||||
PATH@[798; 806)
|
||||
PATH_SEGMENT@[798; 806)
|
||||
COLONCOLON@[798; 800)
|
||||
NAME_REF@[800; 806)
|
||||
IDENT@[800; 806) "c_void"
|
||||
COMMA@[806; 807)
|
||||
WHITESPACE@[807; 830)
|
||||
PARAM@[830; 851)
|
||||
BIND_PAT@[830; 840)
|
||||
NAME@[830; 840)
|
||||
IDENT@[830; 840) "option_len"
|
||||
COLON@[840; 841)
|
||||
WHITESPACE@[841; 842)
|
||||
PATH_TYPE@[842; 851)
|
||||
PATH@[842; 851)
|
||||
PATH_SEGMENT@[842; 851)
|
||||
NAME_REF@[842; 851)
|
||||
IDENT@[842; 851) "socklen_t"
|
||||
R_PAREN@[851; 852)
|
||||
WHITESPACE@[852; 853)
|
||||
RET_TYPE@[853; 863)
|
||||
THIN_ARROW@[853; 855)
|
||||
WHITESPACE@[855; 856)
|
||||
PATH_TYPE@[856; 863)
|
||||
PATH@[856; 863)
|
||||
PATH_SEGMENT@[856; 863)
|
||||
COLONCOLON@[856; 858)
|
||||
NAME_REF@[858; 863)
|
||||
IDENT@[858; 863) "c_int"
|
||||
SEMI@[863; 864)
|
||||
WHITESPACE@[864; 869)
|
||||
FN_DEF@[869; 992)
|
||||
VISIBILITY@[869; 872)
|
||||
PUB_KW@[869; 872)
|
||||
WHITESPACE@[872; 873)
|
||||
FN_KW@[873; 875)
|
||||
WHITESPACE@[875; 876)
|
||||
NAME@[876; 887)
|
||||
IDENT@[876; 887) "getpeername"
|
||||
PARAM_LIST@[887; 980)
|
||||
L_PAREN@[887; 888)
|
||||
PARAM@[888; 903)
|
||||
BIND_PAT@[888; 894)
|
||||
NAME@[888; 894)
|
||||
IDENT@[888; 894) "socket"
|
||||
COLON@[894; 895)
|
||||
WHITESPACE@[895; 896)
|
||||
PATH_TYPE@[896; 903)
|
||||
PATH@[896; 903)
|
||||
PATH_SEGMENT@[896; 903)
|
||||
COLONCOLON@[896; 898)
|
||||
NAME_REF@[898; 903)
|
||||
IDENT@[898; 903) "c_int"
|
||||
COMMA@[903; 904)
|
||||
WHITESPACE@[904; 905)
|
||||
PARAM@[905; 927)
|
||||
BIND_PAT@[905; 912)
|
||||
NAME@[905; 912)
|
||||
IDENT@[905; 912) "address"
|
||||
COLON@[912; 913)
|
||||
WHITESPACE@[913; 914)
|
||||
POINTER_TYPE@[914; 927)
|
||||
STAR@[914; 915)
|
||||
MUT_KW@[915; 918)
|
||||
WHITESPACE@[918; 919)
|
||||
PATH_TYPE@[919; 927)
|
||||
PATH@[919; 927)
|
||||
PATH_SEGMENT@[919; 927)
|
||||
NAME_REF@[919; 927)
|
||||
IDENT@[919; 927) "sockaddr"
|
||||
COMMA@[927; 928)
|
||||
WHITESPACE@[928; 952)
|
||||
PARAM@[952; 979)
|
||||
BIND_PAT@[952; 963)
|
||||
NAME@[952; 963)
|
||||
IDENT@[952; 963) "address_len"
|
||||
COLON@[963; 964)
|
||||
WHITESPACE@[964; 965)
|
||||
POINTER_TYPE@[965; 979)
|
||||
STAR@[965; 966)
|
||||
MUT_KW@[966; 969)
|
||||
WHITESPACE@[969; 970)
|
||||
PATH_TYPE@[970; 979)
|
||||
PATH@[970; 979)
|
||||
PATH_SEGMENT@[970; 979)
|
||||
NAME_REF@[970; 979)
|
||||
IDENT@[970; 979) "socklen_t"
|
||||
R_PAREN@[979; 980)
|
||||
WHITESPACE@[980; 981)
|
||||
RET_TYPE@[981; 991)
|
||||
THIN_ARROW@[981; 983)
|
||||
WHITESPACE@[983; 984)
|
||||
PATH_TYPE@[984; 991)
|
||||
PATH@[984; 991)
|
||||
PATH_SEGMENT@[984; 991)
|
||||
COLONCOLON@[984; 986)
|
||||
NAME_REF@[986; 991)
|
||||
IDENT@[986; 991) "c_int"
|
||||
SEMI@[991; 992)
|
||||
WHITESPACE@[992; 997)
|
||||
FN_DEF@[997; 1173)
|
||||
VISIBILITY@[997; 1000)
|
||||
PUB_KW@[997; 1000)
|
||||
WHITESPACE@[1000; 1001)
|
||||
FN_KW@[1001; 1003)
|
||||
WHITESPACE@[1003; 1004)
|
||||
NAME@[1004; 1010)
|
||||
IDENT@[1004; 1010) "sendto"
|
||||
PARAM_LIST@[1010; 1159)
|
||||
L_PAREN@[1010; 1011)
|
||||
PARAM@[1011; 1026)
|
||||
BIND_PAT@[1011; 1017)
|
||||
NAME@[1011; 1017)
|
||||
IDENT@[1011; 1017) "socket"
|
||||
COLON@[1017; 1018)
|
||||
WHITESPACE@[1018; 1019)
|
||||
PATH_TYPE@[1019; 1026)
|
||||
PATH@[1019; 1026)
|
||||
PATH_SEGMENT@[1019; 1026)
|
||||
COLONCOLON@[1019; 1021)
|
||||
NAME_REF@[1021; 1026)
|
||||
IDENT@[1021; 1026) "c_int"
|
||||
COMMA@[1026; 1027)
|
||||
WHITESPACE@[1027; 1028)
|
||||
PARAM@[1028; 1048)
|
||||
BIND_PAT@[1028; 1031)
|
||||
NAME@[1028; 1031)
|
||||
IDENT@[1028; 1031) "buf"
|
||||
COLON@[1031; 1032)
|
||||
WHITESPACE@[1032; 1033)
|
||||
POINTER_TYPE@[1033; 1048)
|
||||
STAR@[1033; 1034)
|
||||
CONST_KW@[1034; 1039)
|
||||
WHITESPACE@[1039; 1040)
|
||||
PATH_TYPE@[1040; 1048)
|
||||
PATH@[1040; 1048)
|
||||
PATH_SEGMENT@[1040; 1048)
|
||||
COLONCOLON@[1040; 1042)
|
||||
NAME_REF@[1042; 1048)
|
||||
IDENT@[1042; 1048) "c_void"
|
||||
COMMA@[1048; 1049)
|
||||
WHITESPACE@[1049; 1050)
|
||||
PARAM@[1050; 1063)
|
||||
BIND_PAT@[1050; 1053)
|
||||
NAME@[1050; 1053)
|
||||
IDENT@[1050; 1053) "len"
|
||||
COLON@[1053; 1054)
|
||||
WHITESPACE@[1054; 1055)
|
||||
PATH_TYPE@[1055; 1063)
|
||||
PATH@[1055; 1063)
|
||||
PATH_SEGMENT@[1055; 1063)
|
||||
COLONCOLON@[1055; 1057)
|
||||
NAME_REF@[1057; 1063)
|
||||
IDENT@[1057; 1063) "size_t"
|
||||
COMMA@[1063; 1064)
|
||||
WHITESPACE@[1064; 1083)
|
||||
PARAM@[1083; 1097)
|
||||
BIND_PAT@[1083; 1088)
|
||||
NAME@[1083; 1088)
|
||||
IDENT@[1083; 1088) "flags"
|
||||
COLON@[1088; 1089)
|
||||
WHITESPACE@[1089; 1090)
|
||||
PATH_TYPE@[1090; 1097)
|
||||
PATH@[1090; 1097)
|
||||
PATH_SEGMENT@[1090; 1097)
|
||||
COLONCOLON@[1090; 1092)
|
||||
NAME_REF@[1092; 1097)
|
||||
IDENT@[1092; 1097) "c_int"
|
||||
COMMA@[1097; 1098)
|
||||
WHITESPACE@[1098; 1099)
|
||||
PARAM@[1099; 1120)
|
||||
BIND_PAT@[1099; 1103)
|
||||
NAME@[1099; 1103)
|
||||
IDENT@[1099; 1103) "addr"
|
||||
COLON@[1103; 1104)
|
||||
WHITESPACE@[1104; 1105)
|
||||
POINTER_TYPE@[1105; 1120)
|
||||
STAR@[1105; 1106)
|
||||
CONST_KW@[1106; 1111)
|
||||
WHITESPACE@[1111; 1112)
|
||||
PATH_TYPE@[1112; 1120)
|
||||
PATH@[1112; 1120)
|
||||
PATH_SEGMENT@[1112; 1120)
|
||||
NAME_REF@[1112; 1120)
|
||||
IDENT@[1112; 1120) "sockaddr"
|
||||
COMMA@[1120; 1121)
|
||||
WHITESPACE@[1121; 1140)
|
||||
PARAM@[1140; 1158)
|
||||
BIND_PAT@[1140; 1147)
|
||||
NAME@[1140; 1147)
|
||||
IDENT@[1140; 1147) "addrlen"
|
||||
COLON@[1147; 1148)
|
||||
WHITESPACE@[1148; 1149)
|
||||
PATH_TYPE@[1149; 1158)
|
||||
PATH@[1149; 1158)
|
||||
PATH_SEGMENT@[1149; 1158)
|
||||
NAME_REF@[1149; 1158)
|
||||
IDENT@[1149; 1158) "socklen_t"
|
||||
R_PAREN@[1158; 1159)
|
||||
WHITESPACE@[1159; 1160)
|
||||
RET_TYPE@[1160; 1172)
|
||||
THIN_ARROW@[1160; 1162)
|
||||
WHITESPACE@[1162; 1163)
|
||||
PATH_TYPE@[1163; 1172)
|
||||
PATH@[1163; 1172)
|
||||
PATH_SEGMENT@[1163; 1172)
|
||||
COLONCOLON@[1163; 1165)
|
||||
NAME_REF@[1165; 1172)
|
||||
IDENT@[1165; 1172) "ssize_t"
|
||||
SEMI@[1172; 1173)
|
||||
WHITESPACE@[1173; 1178)
|
||||
FN_DEF@[1178; 1289)
|
||||
VISIBILITY@[1178; 1181)
|
||||
PUB_KW@[1178; 1181)
|
||||
WHITESPACE@[1181; 1182)
|
||||
FN_KW@[1182; 1184)
|
||||
WHITESPACE@[1184; 1185)
|
||||
NAME@[1185; 1189)
|
||||
IDENT@[1185; 1189) "send"
|
||||
PARAM_LIST@[1189; 1275)
|
||||
L_PAREN@[1189; 1190)
|
||||
PARAM@[1190; 1205)
|
||||
BIND_PAT@[1190; 1196)
|
||||
NAME@[1190; 1196)
|
||||
IDENT@[1190; 1196) "socket"
|
||||
COLON@[1196; 1197)
|
||||
WHITESPACE@[1197; 1198)
|
||||
PATH_TYPE@[1198; 1205)
|
||||
PATH@[1198; 1205)
|
||||
PATH_SEGMENT@[1198; 1205)
|
||||
COLONCOLON@[1198; 1200)
|
||||
NAME_REF@[1200; 1205)
|
||||
IDENT@[1200; 1205) "c_int"
|
||||
COMMA@[1205; 1206)
|
||||
WHITESPACE@[1206; 1207)
|
||||
PARAM@[1207; 1227)
|
||||
BIND_PAT@[1207; 1210)
|
||||
NAME@[1207; 1210)
|
||||
IDENT@[1207; 1210) "buf"
|
||||
COLON@[1210; 1211)
|
||||
WHITESPACE@[1211; 1212)
|
||||
POINTER_TYPE@[1212; 1227)
|
||||
STAR@[1212; 1213)
|
||||
CONST_KW@[1213; 1218)
|
||||
WHITESPACE@[1218; 1219)
|
||||
PATH_TYPE@[1219; 1227)
|
||||
PATH@[1219; 1227)
|
||||
PATH_SEGMENT@[1219; 1227)
|
||||
COLONCOLON@[1219; 1221)
|
||||
NAME_REF@[1221; 1227)
|
||||
IDENT@[1221; 1227) "c_void"
|
||||
COMMA@[1227; 1228)
|
||||
WHITESPACE@[1228; 1229)
|
||||
PARAM@[1229; 1242)
|
||||
BIND_PAT@[1229; 1232)
|
||||
NAME@[1229; 1232)
|
||||
IDENT@[1229; 1232) "len"
|
||||
COLON@[1232; 1233)
|
||||
WHITESPACE@[1233; 1234)
|
||||
PATH_TYPE@[1234; 1242)
|
||||
PATH@[1234; 1242)
|
||||
PATH_SEGMENT@[1234; 1242)
|
||||
COLONCOLON@[1234; 1236)
|
||||
NAME_REF@[1236; 1242)
|
||||
IDENT@[1236; 1242) "size_t"
|
||||
COMMA@[1242; 1243)
|
||||
WHITESPACE@[1243; 1260)
|
||||
PARAM@[1260; 1274)
|
||||
BIND_PAT@[1260; 1265)
|
||||
NAME@[1260; 1265)
|
||||
IDENT@[1260; 1265) "flags"
|
||||
COLON@[1265; 1266)
|
||||
WHITESPACE@[1266; 1267)
|
||||
PATH_TYPE@[1267; 1274)
|
||||
PATH@[1267; 1274)
|
||||
PATH_SEGMENT@[1267; 1274)
|
||||
COLONCOLON@[1267; 1269)
|
||||
NAME_REF@[1269; 1274)
|
||||
IDENT@[1269; 1274) "c_int"
|
||||
R_PAREN@[1274; 1275)
|
||||
WHITESPACE@[1275; 1276)
|
||||
RET_TYPE@[1276; 1288)
|
||||
THIN_ARROW@[1276; 1278)
|
||||
WHITESPACE@[1278; 1279)
|
||||
PATH_TYPE@[1279; 1288)
|
||||
PATH@[1279; 1288)
|
||||
PATH_SEGMENT@[1279; 1288)
|
||||
COLONCOLON@[1279; 1281)
|
||||
NAME_REF@[1281; 1288)
|
||||
IDENT@[1281; 1288) "ssize_t"
|
||||
SEMI@[1288; 1289)
|
||||
WHITESPACE@[1289; 1294)
|
||||
FN_DEF@[1294; 1481)
|
||||
VISIBILITY@[1294; 1297)
|
||||
PUB_KW@[1294; 1297)
|
||||
WHITESPACE@[1297; 1298)
|
||||
FN_KW@[1298; 1300)
|
||||
WHITESPACE@[1300; 1301)
|
||||
NAME@[1301; 1309)
|
||||
IDENT@[1301; 1309) "recvfrom"
|
||||
PARAM_LIST@[1309; 1467)
|
||||
L_PAREN@[1309; 1310)
|
||||
PARAM@[1310; 1325)
|
||||
BIND_PAT@[1310; 1316)
|
||||
NAME@[1310; 1316)
|
||||
IDENT@[1310; 1316) "socket"
|
||||
COLON@[1316; 1317)
|
||||
WHITESPACE@[1317; 1318)
|
||||
PATH_TYPE@[1318; 1325)
|
||||
PATH@[1318; 1325)
|
||||
PATH_SEGMENT@[1318; 1325)
|
||||
COLONCOLON@[1318; 1320)
|
||||
NAME_REF@[1320; 1325)
|
||||
IDENT@[1320; 1325) "c_int"
|
||||
COMMA@[1325; 1326)
|
||||
WHITESPACE@[1326; 1327)
|
||||
PARAM@[1327; 1345)
|
||||
BIND_PAT@[1327; 1330)
|
||||
NAME@[1327; 1330)
|
||||
IDENT@[1327; 1330) "buf"
|
||||
COLON@[1330; 1331)
|
||||
WHITESPACE@[1331; 1332)
|
||||
POINTER_TYPE@[1332; 1345)
|
||||
STAR@[1332; 1333)
|
||||
MUT_KW@[1333; 1336)
|
||||
WHITESPACE@[1336; 1337)
|
||||
PATH_TYPE@[1337; 1345)
|
||||
PATH@[1337; 1345)
|
||||
PATH_SEGMENT@[1337; 1345)
|
||||
COLONCOLON@[1337; 1339)
|
||||
NAME_REF@[1339; 1345)
|
||||
IDENT@[1339; 1345) "c_void"
|
||||
COMMA@[1345; 1346)
|
||||
WHITESPACE@[1346; 1347)
|
||||
PARAM@[1347; 1360)
|
||||
BIND_PAT@[1347; 1350)
|
||||
NAME@[1347; 1350)
|
||||
IDENT@[1347; 1350) "len"
|
||||
COLON@[1350; 1351)
|
||||
WHITESPACE@[1351; 1352)
|
||||
PATH_TYPE@[1352; 1360)
|
||||
PATH@[1352; 1360)
|
||||
PATH_SEGMENT@[1352; 1360)
|
||||
COLONCOLON@[1352; 1354)
|
||||
NAME_REF@[1354; 1360)
|
||||
IDENT@[1354; 1360) "size_t"
|
||||
COMMA@[1360; 1361)
|
||||
WHITESPACE@[1361; 1382)
|
||||
PARAM@[1382; 1396)
|
||||
BIND_PAT@[1382; 1387)
|
||||
NAME@[1382; 1387)
|
||||
IDENT@[1382; 1387) "flags"
|
||||
COLON@[1387; 1388)
|
||||
WHITESPACE@[1388; 1389)
|
||||
PATH_TYPE@[1389; 1396)
|
||||
PATH@[1389; 1396)
|
||||
PATH_SEGMENT@[1389; 1396)
|
||||
COLONCOLON@[1389; 1391)
|
||||
NAME_REF@[1391; 1396)
|
||||
IDENT@[1391; 1396) "c_int"
|
||||
COMMA@[1396; 1397)
|
||||
WHITESPACE@[1397; 1398)
|
||||
PARAM@[1398; 1419)
|
||||
BIND_PAT@[1398; 1402)
|
||||
NAME@[1398; 1402)
|
||||
IDENT@[1398; 1402) "addr"
|
||||
COLON@[1402; 1403)
|
||||
WHITESPACE@[1403; 1404)
|
||||
POINTER_TYPE@[1404; 1419)
|
||||
STAR@[1404; 1405)
|
||||
MUT_KW@[1405; 1408)
|
||||
WHITESPACE@[1408; 1409)
|
||||
PATH_TYPE@[1409; 1419)
|
||||
PATH@[1409; 1419)
|
||||
PATH_SEGMENT@[1409; 1419)
|
||||
COLONCOLON@[1409; 1411)
|
||||
NAME_REF@[1411; 1419)
|
||||
IDENT@[1411; 1419) "sockaddr"
|
||||
COMMA@[1419; 1420)
|
||||
WHITESPACE@[1420; 1441)
|
||||
PARAM@[1441; 1466)
|
||||
BIND_PAT@[1441; 1448)
|
||||
NAME@[1441; 1448)
|
||||
IDENT@[1441; 1448) "addrlen"
|
||||
COLON@[1448; 1449)
|
||||
WHITESPACE@[1449; 1450)
|
||||
POINTER_TYPE@[1450; 1466)
|
||||
STAR@[1450; 1451)
|
||||
MUT_KW@[1451; 1454)
|
||||
WHITESPACE@[1454; 1455)
|
||||
PATH_TYPE@[1455; 1466)
|
||||
PATH@[1455; 1466)
|
||||
PATH_SEGMENT@[1455; 1466)
|
||||
COLONCOLON@[1455; 1457)
|
||||
NAME_REF@[1457; 1466)
|
||||
IDENT@[1457; 1466) "socklen_t"
|
||||
R_PAREN@[1466; 1467)
|
||||
WHITESPACE@[1467; 1468)
|
||||
RET_TYPE@[1468; 1480)
|
||||
THIN_ARROW@[1468; 1470)
|
||||
WHITESPACE@[1470; 1471)
|
||||
PATH_TYPE@[1471; 1480)
|
||||
PATH@[1471; 1480)
|
||||
PATH_SEGMENT@[1471; 1480)
|
||||
COLONCOLON@[1471; 1473)
|
||||
NAME_REF@[1473; 1480)
|
||||
IDENT@[1473; 1480) "ssize_t"
|
||||
SEMI@[1480; 1481)
|
||||
WHITESPACE@[1481; 1486)
|
||||
FN_DEF@[1486; 1595)
|
||||
VISIBILITY@[1486; 1489)
|
||||
PUB_KW@[1486; 1489)
|
||||
WHITESPACE@[1489; 1490)
|
||||
FN_KW@[1490; 1492)
|
||||
WHITESPACE@[1492; 1493)
|
||||
NAME@[1493; 1497)
|
||||
IDENT@[1493; 1497) "recv"
|
||||
PARAM_LIST@[1497; 1581)
|
||||
L_PAREN@[1497; 1498)
|
||||
PARAM@[1498; 1513)
|
||||
BIND_PAT@[1498; 1504)
|
||||
NAME@[1498; 1504)
|
||||
IDENT@[1498; 1504) "socket"
|
||||
COLON@[1504; 1505)
|
||||
WHITESPACE@[1505; 1506)
|
||||
PATH_TYPE@[1506; 1513)
|
||||
PATH@[1506; 1513)
|
||||
PATH_SEGMENT@[1506; 1513)
|
||||
COLONCOLON@[1506; 1508)
|
||||
NAME_REF@[1508; 1513)
|
||||
IDENT@[1508; 1513) "c_int"
|
||||
COMMA@[1513; 1514)
|
||||
WHITESPACE@[1514; 1515)
|
||||
PARAM@[1515; 1533)
|
||||
BIND_PAT@[1515; 1518)
|
||||
NAME@[1515; 1518)
|
||||
IDENT@[1515; 1518) "buf"
|
||||
COLON@[1518; 1519)
|
||||
WHITESPACE@[1519; 1520)
|
||||
POINTER_TYPE@[1520; 1533)
|
||||
STAR@[1520; 1521)
|
||||
MUT_KW@[1521; 1524)
|
||||
WHITESPACE@[1524; 1525)
|
||||
PATH_TYPE@[1525; 1533)
|
||||
PATH@[1525; 1533)
|
||||
PATH_SEGMENT@[1525; 1533)
|
||||
COLONCOLON@[1525; 1527)
|
||||
NAME_REF@[1527; 1533)
|
||||
IDENT@[1527; 1533) "c_void"
|
||||
COMMA@[1533; 1534)
|
||||
WHITESPACE@[1534; 1535)
|
||||
PARAM@[1535; 1548)
|
||||
BIND_PAT@[1535; 1538)
|
||||
NAME@[1535; 1538)
|
||||
IDENT@[1535; 1538) "len"
|
||||
COLON@[1538; 1539)
|
||||
WHITESPACE@[1539; 1540)
|
||||
PATH_TYPE@[1540; 1548)
|
||||
PATH@[1540; 1548)
|
||||
PATH_SEGMENT@[1540; 1548)
|
||||
COLONCOLON@[1540; 1542)
|
||||
NAME_REF@[1542; 1548)
|
||||
IDENT@[1542; 1548) "size_t"
|
||||
COMMA@[1548; 1549)
|
||||
WHITESPACE@[1549; 1566)
|
||||
PARAM@[1566; 1580)
|
||||
BIND_PAT@[1566; 1571)
|
||||
NAME@[1566; 1571)
|
||||
IDENT@[1566; 1571) "flags"
|
||||
COLON@[1571; 1572)
|
||||
WHITESPACE@[1572; 1573)
|
||||
PATH_TYPE@[1573; 1580)
|
||||
PATH@[1573; 1580)
|
||||
PATH_SEGMENT@[1573; 1580)
|
||||
COLONCOLON@[1573; 1575)
|
||||
NAME_REF@[1575; 1580)
|
||||
IDENT@[1575; 1580) "c_int"
|
||||
R_PAREN@[1580; 1581)
|
||||
WHITESPACE@[1581; 1582)
|
||||
RET_TYPE@[1582; 1594)
|
||||
THIN_ARROW@[1582; 1584)
|
||||
WHITESPACE@[1584; 1585)
|
||||
PATH_TYPE@[1585; 1594)
|
||||
PATH@[1585; 1594)
|
||||
PATH_SEGMENT@[1585; 1594)
|
||||
COLONCOLON@[1585; 1587)
|
||||
NAME_REF@[1587; 1594)
|
||||
IDENT@[1587; 1594) "ssize_t"
|
||||
SEMI@[1594; 1595)
|
||||
WHITESPACE@[1595; 1596)
|
||||
R_CURLY@[1596; 1597)
|
||||
WHITESPACE@[1597; 1598)
|
|
@ -26,7 +26,6 @@ fn lexer_tests() {
|
|||
#[test]
|
||||
fn parser_tests() {
|
||||
dir_tests(&["parser/inline", "parser/ok", "parser/err"], |text| {
|
||||
eprintln!("\n{}\n", text);
|
||||
let file = File::parse(text);
|
||||
dump_tree(file.syntax())
|
||||
})
|
||||
|
|
|
@ -126,7 +126,6 @@ fn main_loop_inner(
|
|||
}
|
||||
recv(libdata_receiver, data) => Event::Lib(data.unwrap())
|
||||
};
|
||||
trace!("selected {:?}", event);
|
||||
let mut state_changed = false;
|
||||
match event {
|
||||
Event::Task(task) => on_task(task, msg_sender, pending_requests),
|
||||
|
@ -163,6 +162,7 @@ fn main_loop_inner(
|
|||
}
|
||||
}
|
||||
Event::Lib(lib) => {
|
||||
feedback(internal_mode, "library loaded", msg_sender);
|
||||
state.add_lib(lib);
|
||||
}
|
||||
Event::Msg(msg) => {
|
||||
|
|
|
@ -14,6 +14,7 @@ use m::req::{Runnables, RunnablesParams};
|
|||
|
||||
use support::project;
|
||||
|
||||
|
||||
const LOG: &'static str = "";
|
||||
|
||||
#[test]
|
||||
|
@ -79,3 +80,20 @@ fn test_eggs() {}
|
|||
]"#
|
||||
);
|
||||
}
|
||||
|
||||
// #[test]
|
||||
// fn test_deps() {
|
||||
// let server = project(r#"
|
||||
// //- Cargo.toml
|
||||
// [package]
|
||||
// name = "foo"
|
||||
// version = "0.0.0"
|
||||
// [dependencies]
|
||||
// regex = "=1.0.4"
|
||||
|
||||
// //- src/lib.rs
|
||||
// extern crate regex;
|
||||
// "#);
|
||||
// server.wait_for_feedback("workspace loaded");
|
||||
// server.wait_for_feedback_n("library loaded", 1);
|
||||
// }
|
||||
|
|
|
@ -155,6 +155,9 @@ impl Server {
|
|||
panic!("no response");
|
||||
}
|
||||
pub fn wait_for_feedback(&self, feedback: &str) {
|
||||
self.wait_for_feedback_n(feedback, 1)
|
||||
}
|
||||
pub fn wait_for_feedback_n(&self, feedback: &str, n: usize) {
|
||||
let f = |msg: &RawMessage| match msg {
|
||||
RawMessage::Notification(n) if n.method == "internalFeedback" => {
|
||||
return n.clone().cast::<req::InternalFeedback>()
|
||||
|
@ -162,18 +165,18 @@ impl Server {
|
|||
}
|
||||
_ => false,
|
||||
};
|
||||
|
||||
let mut total = 0;
|
||||
for msg in self.messages.borrow().iter() {
|
||||
if f(msg) {
|
||||
return;
|
||||
total += 1
|
||||
}
|
||||
}
|
||||
while let Some(msg) = self.recv() {
|
||||
while total < n {
|
||||
let msg = self.recv().expect("no response");
|
||||
if f(&msg) {
|
||||
return;
|
||||
total += 1;
|
||||
}
|
||||
}
|
||||
panic!("no response")
|
||||
}
|
||||
fn recv(&self) -> Option<RawMessage> {
|
||||
let timeout = Duration::from_secs(5);
|
||||
|
|
Loading…
Reference in a new issue