From 08f7c69f90bac772c69b3bf34877f3d9a845c541 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 13 Jan 2018 22:00:26 +0300 Subject: G: struct flavors --- tests/data/lexer/0011_keywords.rs | 2 +- tests/data/lexer/0011_keywords.txt | 2 + .../parser/err/0000_struct_field_missing_comma.txt | 4 +- tests/data/parser/err/0003_C++_semicolon.txt | 4 +- tests/data/parser/ok/0002_struct_item_field.txt | 2 +- tests/data/parser/ok/0016_struct_flavors.rs | 10 ++++ tests/data/parser/ok/0016_struct_flavors.txt | 66 ++++++++++++++++++++++ 7 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 tests/data/parser/ok/0016_struct_flavors.rs create mode 100644 tests/data/parser/ok/0016_struct_flavors.txt (limited to 'tests/data') diff --git a/tests/data/lexer/0011_keywords.rs b/tests/data/lexer/0011_keywords.rs index aa729cdbd..c2c9e5667 100644 --- a/tests/data/lexer/0011_keywords.rs +++ b/tests/data/lexer/0011_keywords.rs @@ -1 +1 @@ -fn use struct trait enum impl true false as extern crate mod pub self super in +fn use struct trait enum impl true false as extern crate mod pub self super in where diff --git a/tests/data/lexer/0011_keywords.txt b/tests/data/lexer/0011_keywords.txt index 8a1f525ac..301ee21e2 100644 --- a/tests/data/lexer/0011_keywords.txt +++ b/tests/data/lexer/0011_keywords.txt @@ -29,4 +29,6 @@ WHITESPACE 1 " " SUPER_KW 5 "super" WHITESPACE 1 " " IN_KW 2 "in" +WHITESPACE 1 " " +WHERE_KW 5 "where" WHITESPACE 1 "\n" diff --git a/tests/data/parser/err/0000_struct_field_missing_comma.txt b/tests/data/parser/err/0000_struct_field_missing_comma.txt index 55a4ad915..f59205f55 100644 --- a/tests/data/parser/err/0000_struct_field_missing_comma.txt +++ b/tests/data/parser/err/0000_struct_field_missing_comma.txt @@ -5,7 +5,7 @@ FILE@[0; 34) IDENT@[7; 8) WHITESPACE@[8; 9) L_CURLY@[9; 10) - STRUCT_FIELD@[10; 26) + NAMED_FIELD@[10; 26) WHITESPACE@[10; 15) IDENT@[15; 16) COLON@[16; 17) @@ -13,7 +13,7 @@ FILE@[0; 34) IDENT@[18; 21) WHITESPACE@[21; 26) err: `expected COMMA` - STRUCT_FIELD@[26; 33) + NAMED_FIELD@[26; 33) IDENT@[26; 27) COLON@[27; 28) WHITESPACE@[28; 29) diff --git a/tests/data/parser/err/0003_C++_semicolon.txt b/tests/data/parser/err/0003_C++_semicolon.txt index 9308bb330..8dd45d2e5 100644 --- a/tests/data/parser/err/0003_C++_semicolon.txt +++ b/tests/data/parser/err/0003_C++_semicolon.txt @@ -5,14 +5,14 @@ FILE@[0; 40) IDENT@[7; 8) WHITESPACE@[8; 9) L_CURLY@[9; 10) - STRUCT_FIELD@[10; 21) + NAMED_FIELD@[10; 21) WHITESPACE@[10; 15) IDENT@[15; 16) COLON@[16; 17) WHITESPACE@[17; 18) IDENT@[18; 21) COMMA@[21; 22) - STRUCT_FIELD@[22; 36) + NAMED_FIELD@[22; 36) WHITESPACE@[22; 27) IDENT@[27; 28) COLON@[28; 29) diff --git a/tests/data/parser/ok/0002_struct_item_field.txt b/tests/data/parser/ok/0002_struct_item_field.txt index 87ab3f7a9..58042f6a7 100644 --- a/tests/data/parser/ok/0002_struct_item_field.txt +++ b/tests/data/parser/ok/0002_struct_item_field.txt @@ -5,7 +5,7 @@ FILE@[0; 25) IDENT@[7; 8) WHITESPACE@[8; 9) L_CURLY@[9; 10) - STRUCT_FIELD@[10; 24) + NAMED_FIELD@[10; 24) WHITESPACE@[10; 15) IDENT@[15; 18) COLON@[18; 19) diff --git a/tests/data/parser/ok/0016_struct_flavors.rs b/tests/data/parser/ok/0016_struct_flavors.rs new file mode 100644 index 000000000..69638350c --- /dev/null +++ b/tests/data/parser/ok/0016_struct_flavors.rs @@ -0,0 +1,10 @@ +struct A; +struct B {} +struct C(); + +struct D { + a: u32, + pub b: u32 +} + +struct E(pub x, y,); diff --git a/tests/data/parser/ok/0016_struct_flavors.txt b/tests/data/parser/ok/0016_struct_flavors.txt new file mode 100644 index 000000000..93b16e1b9 --- /dev/null +++ b/tests/data/parser/ok/0016_struct_flavors.txt @@ -0,0 +1,66 @@ +FILE@[0; 97) + STRUCT_ITEM@[0; 10) + STRUCT_KW@[0; 6) + WHITESPACE@[6; 7) + IDENT@[7; 8) + SEMI@[8; 9) + WHITESPACE@[9; 10) + STRUCT_ITEM@[10; 22) + STRUCT_KW@[10; 16) + WHITESPACE@[16; 17) + IDENT@[17; 18) + WHITESPACE@[18; 19) + L_CURLY@[19; 20) + R_CURLY@[20; 21) + WHITESPACE@[21; 22) + STRUCT_ITEM@[22; 35) + STRUCT_KW@[22; 28) + WHITESPACE@[28; 29) + IDENT@[29; 30) + L_PAREN@[30; 31) + R_PAREN@[31; 32) + SEMI@[32; 33) + WHITESPACE@[33; 35) + STRUCT_ITEM@[35; 76) + STRUCT_KW@[35; 41) + WHITESPACE@[41; 42) + IDENT@[42; 43) + WHITESPACE@[43; 44) + L_CURLY@[44; 45) + NAMED_FIELD@[45; 56) + WHITESPACE@[45; 50) + IDENT@[50; 51) + COLON@[51; 52) + WHITESPACE@[52; 53) + IDENT@[53; 56) + COMMA@[56; 57) + NAMED_FIELD@[57; 73) + VISIBILITY@[57; 66) + WHITESPACE@[57; 62) + PUB_KW@[62; 65) + WHITESPACE@[65; 66) + IDENT@[66; 67) + COLON@[67; 68) + WHITESPACE@[68; 69) + IDENT@[69; 72) + WHITESPACE@[72; 73) + R_CURLY@[73; 74) + WHITESPACE@[74; 76) + STRUCT_ITEM@[76; 97) + STRUCT_KW@[76; 82) + WHITESPACE@[82; 83) + IDENT@[83; 84) + L_PAREN@[84; 85) + POS_FIELD@[85; 90) + VISIBILITY@[85; 89) + PUB_KW@[85; 88) + WHITESPACE@[88; 89) + IDENT@[89; 90) + COMMA@[90; 91) + POS_FIELD@[91; 93) + WHITESPACE@[91; 92) + IDENT@[92; 93) + COMMA@[93; 94) + R_PAREN@[94; 95) + SEMI@[95; 96) + WHITESPACE@[96; 97) -- cgit v1.2.3