]> git.lizzy.rs Git - rust.git/commitdiff
Add test for minus in inner pattern
authorMichael Chesser <michaelchesser@outlook.com>
Thu, 14 Mar 2019 08:52:37 +0000 (19:22 +1030)
committerMichael Chesser <michaelchesser@outlook.com>
Thu, 14 Mar 2019 08:54:12 +0000 (19:24 +1030)
crates/ra_syntax/tests/data/parser/ok/0047_minus_in_inner_pattern.rs [new file with mode: 0644]
crates/ra_syntax/tests/data/parser/ok/0047_minus_in_inner_pattern.txt [new file with mode: 0644]

diff --git a/crates/ra_syntax/tests/data/parser/ok/0047_minus_in_inner_pattern.rs b/crates/ra_syntax/tests/data/parser/ok/0047_minus_in_inner_pattern.rs
new file mode 100644 (file)
index 0000000..bbd6b0f
--- /dev/null
@@ -0,0 +1,27 @@
+// https://github.com/rust-analyzer/rust-analyzer/issues/972
+
+fn main() {
+    match Some(-1) {
+        Some(-1) => (),
+        _ => (),
+    }
+
+    match Some((-1, -1)) {
+        Some((-1, -1)) => (),
+        _ => (),
+    }
+
+    match A::B(-1, -1) {
+        A::B(-1, -1) => (),
+        _ => (),
+    }
+
+    if let Some(-1) = Some(-1) {
+    }
+}
+
+enum A {
+    B(i8, i8)
+}
+
+fn foo(-128..=127: i8) {}
diff --git a/crates/ra_syntax/tests/data/parser/ok/0047_minus_in_inner_pattern.txt b/crates/ra_syntax/tests/data/parser/ok/0047_minus_in_inner_pattern.txt
new file mode 100644 (file)
index 0000000..ca66b44
--- /dev/null
@@ -0,0 +1,320 @@
+SOURCE_FILE@[0; 395)
+  COMMENT@[0; 60)
+  WHITESPACE@[60; 62)
+  FN_DEF@[62; 341)
+    FN_KW@[62; 64)
+    WHITESPACE@[64; 65)
+    NAME@[65; 69)
+      IDENT@[65; 69) "main"
+    PARAM_LIST@[69; 71)
+      L_PAREN@[69; 70)
+      R_PAREN@[70; 71)
+    WHITESPACE@[71; 72)
+    BLOCK@[72; 341)
+      L_CURLY@[72; 73)
+      WHITESPACE@[73; 78)
+      EXPR_STMT@[78; 141)
+        MATCH_EXPR@[78; 141)
+          MATCH_KW@[78; 83)
+          WHITESPACE@[83; 84)
+          CALL_EXPR@[84; 92)
+            PATH_EXPR@[84; 88)
+              PATH@[84; 88)
+                PATH_SEGMENT@[84; 88)
+                  NAME_REF@[84; 88)
+                    IDENT@[84; 88) "Some"
+            ARG_LIST@[88; 92)
+              L_PAREN@[88; 89)
+              PREFIX_EXPR@[89; 91)
+                MINUS@[89; 90)
+                LITERAL@[90; 91)
+                  INT_NUMBER@[90; 91) "1"
+              R_PAREN@[91; 92)
+          WHITESPACE@[92; 93)
+          MATCH_ARM_LIST@[93; 141)
+            L_CURLY@[93; 94)
+            WHITESPACE@[94; 103)
+            MATCH_ARM@[103; 117)
+              TUPLE_STRUCT_PAT@[103; 111)
+                PATH@[103; 107)
+                  PATH_SEGMENT@[103; 107)
+                    NAME_REF@[103; 107)
+                      IDENT@[103; 107) "Some"
+                L_PAREN@[107; 108)
+                LITERAL_PAT@[108; 110)
+                  MINUS@[108; 109)
+                  LITERAL@[109; 110)
+                    INT_NUMBER@[109; 110) "1"
+                R_PAREN@[110; 111)
+              WHITESPACE@[111; 112)
+              FAT_ARROW@[112; 114)
+              WHITESPACE@[114; 115)
+              TUPLE_EXPR@[115; 117)
+                L_PAREN@[115; 116)
+                R_PAREN@[116; 117)
+            COMMA@[117; 118)
+            WHITESPACE@[118; 127)
+            MATCH_ARM@[127; 134)
+              PLACEHOLDER_PAT@[127; 128)
+                UNDERSCORE@[127; 128)
+              WHITESPACE@[128; 129)
+              FAT_ARROW@[129; 131)
+              WHITESPACE@[131; 132)
+              TUPLE_EXPR@[132; 134)
+                L_PAREN@[132; 133)
+                R_PAREN@[133; 134)
+            COMMA@[134; 135)
+            WHITESPACE@[135; 140)
+            R_CURLY@[140; 141)
+      WHITESPACE@[141; 147)
+      EXPR_STMT@[147; 222)
+        MATCH_EXPR@[147; 222)
+          MATCH_KW@[147; 152)
+          WHITESPACE@[152; 153)
+          CALL_EXPR@[153; 167)
+            PATH_EXPR@[153; 157)
+              PATH@[153; 157)
+                PATH_SEGMENT@[153; 157)
+                  NAME_REF@[153; 157)
+                    IDENT@[153; 157) "Some"
+            ARG_LIST@[157; 167)
+              L_PAREN@[157; 158)
+              TUPLE_EXPR@[158; 166)
+                L_PAREN@[158; 159)
+                PREFIX_EXPR@[159; 161)
+                  MINUS@[159; 160)
+                  LITERAL@[160; 161)
+                    INT_NUMBER@[160; 161) "1"
+                COMMA@[161; 162)
+                WHITESPACE@[162; 163)
+                PREFIX_EXPR@[163; 165)
+                  MINUS@[163; 164)
+                  LITERAL@[164; 165)
+                    INT_NUMBER@[164; 165) "1"
+                R_PAREN@[165; 166)
+              R_PAREN@[166; 167)
+          WHITESPACE@[167; 168)
+          MATCH_ARM_LIST@[168; 222)
+            L_CURLY@[168; 169)
+            WHITESPACE@[169; 178)
+            MATCH_ARM@[178; 198)
+              TUPLE_STRUCT_PAT@[178; 192)
+                PATH@[178; 182)
+                  PATH_SEGMENT@[178; 182)
+                    NAME_REF@[178; 182)
+                      IDENT@[178; 182) "Some"
+                L_PAREN@[182; 183)
+                TUPLE_PAT@[183; 191)
+                  L_PAREN@[183; 184)
+                  LITERAL_PAT@[184; 186)
+                    MINUS@[184; 185)
+                    LITERAL@[185; 186)
+                      INT_NUMBER@[185; 186) "1"
+                  COMMA@[186; 187)
+                  WHITESPACE@[187; 188)
+                  LITERAL_PAT@[188; 190)
+                    MINUS@[188; 189)
+                    LITERAL@[189; 190)
+                      INT_NUMBER@[189; 190) "1"
+                  R_PAREN@[190; 191)
+                R_PAREN@[191; 192)
+              WHITESPACE@[192; 193)
+              FAT_ARROW@[193; 195)
+              WHITESPACE@[195; 196)
+              TUPLE_EXPR@[196; 198)
+                L_PAREN@[196; 197)
+                R_PAREN@[197; 198)
+            COMMA@[198; 199)
+            WHITESPACE@[199; 208)
+            MATCH_ARM@[208; 215)
+              PLACEHOLDER_PAT@[208; 209)
+                UNDERSCORE@[208; 209)
+              WHITESPACE@[209; 210)
+              FAT_ARROW@[210; 212)
+              WHITESPACE@[212; 213)
+              TUPLE_EXPR@[213; 215)
+                L_PAREN@[213; 214)
+                R_PAREN@[214; 215)
+            COMMA@[215; 216)
+            WHITESPACE@[216; 221)
+            R_CURLY@[221; 222)
+      WHITESPACE@[222; 228)
+      EXPR_STMT@[228; 299)
+        MATCH_EXPR@[228; 299)
+          MATCH_KW@[228; 233)
+          WHITESPACE@[233; 234)
+          CALL_EXPR@[234; 246)
+            PATH_EXPR@[234; 238)
+              PATH@[234; 238)
+                PATH@[234; 235)
+                  PATH_SEGMENT@[234; 235)
+                    NAME_REF@[234; 235)
+                      IDENT@[234; 235) "A"
+                COLONCOLON@[235; 237)
+                PATH_SEGMENT@[237; 238)
+                  NAME_REF@[237; 238)
+                    IDENT@[237; 238) "B"
+            ARG_LIST@[238; 246)
+              L_PAREN@[238; 239)
+              PREFIX_EXPR@[239; 241)
+                MINUS@[239; 240)
+                LITERAL@[240; 241)
+                  INT_NUMBER@[240; 241) "1"
+              COMMA@[241; 242)
+              WHITESPACE@[242; 243)
+              PREFIX_EXPR@[243; 245)
+                MINUS@[243; 244)
+                LITERAL@[244; 245)
+                  INT_NUMBER@[244; 245) "1"
+              R_PAREN@[245; 246)
+          WHITESPACE@[246; 247)
+          MATCH_ARM_LIST@[247; 299)
+            L_CURLY@[247; 248)
+            WHITESPACE@[248; 257)
+            MATCH_ARM@[257; 275)
+              TUPLE_STRUCT_PAT@[257; 269)
+                PATH@[257; 261)
+                  PATH@[257; 258)
+                    PATH_SEGMENT@[257; 258)
+                      NAME_REF@[257; 258)
+                        IDENT@[257; 258) "A"
+                  COLONCOLON@[258; 260)
+                  PATH_SEGMENT@[260; 261)
+                    NAME_REF@[260; 261)
+                      IDENT@[260; 261) "B"
+                L_PAREN@[261; 262)
+                LITERAL_PAT@[262; 264)
+                  MINUS@[262; 263)
+                  LITERAL@[263; 264)
+                    INT_NUMBER@[263; 264) "1"
+                COMMA@[264; 265)
+                WHITESPACE@[265; 266)
+                LITERAL_PAT@[266; 268)
+                  MINUS@[266; 267)
+                  LITERAL@[267; 268)
+                    INT_NUMBER@[267; 268) "1"
+                R_PAREN@[268; 269)
+              WHITESPACE@[269; 270)
+              FAT_ARROW@[270; 272)
+              WHITESPACE@[272; 273)
+              TUPLE_EXPR@[273; 275)
+                L_PAREN@[273; 274)
+                R_PAREN@[274; 275)
+            COMMA@[275; 276)
+            WHITESPACE@[276; 285)
+            MATCH_ARM@[285; 292)
+              PLACEHOLDER_PAT@[285; 286)
+                UNDERSCORE@[285; 286)
+              WHITESPACE@[286; 287)
+              FAT_ARROW@[287; 289)
+              WHITESPACE@[289; 290)
+              TUPLE_EXPR@[290; 292)
+                L_PAREN@[290; 291)
+                R_PAREN@[291; 292)
+            COMMA@[292; 293)
+            WHITESPACE@[293; 298)
+            R_CURLY@[298; 299)
+      WHITESPACE@[299; 305)
+      IF_EXPR@[305; 339)
+        IF_KW@[305; 307)
+        WHITESPACE@[307; 308)
+        CONDITION@[308; 331)
+          LET_KW@[308; 311)
+          WHITESPACE@[311; 312)
+          TUPLE_STRUCT_PAT@[312; 320)
+            PATH@[312; 316)
+              PATH_SEGMENT@[312; 316)
+                NAME_REF@[312; 316)
+                  IDENT@[312; 316) "Some"
+            L_PAREN@[316; 317)
+            LITERAL_PAT@[317; 319)
+              MINUS@[317; 318)
+              LITERAL@[318; 319)
+                INT_NUMBER@[318; 319) "1"
+            R_PAREN@[319; 320)
+          WHITESPACE@[320; 321)
+          EQ@[321; 322)
+          WHITESPACE@[322; 323)
+          CALL_EXPR@[323; 331)
+            PATH_EXPR@[323; 327)
+              PATH@[323; 327)
+                PATH_SEGMENT@[323; 327)
+                  NAME_REF@[323; 327)
+                    IDENT@[323; 327) "Some"
+            ARG_LIST@[327; 331)
+              L_PAREN@[327; 328)
+              PREFIX_EXPR@[328; 330)
+                MINUS@[328; 329)
+                LITERAL@[329; 330)
+                  INT_NUMBER@[329; 330) "1"
+              R_PAREN@[330; 331)
+        WHITESPACE@[331; 332)
+        BLOCK@[332; 339)
+          L_CURLY@[332; 333)
+          WHITESPACE@[333; 338)
+          R_CURLY@[338; 339)
+      WHITESPACE@[339; 340)
+      R_CURLY@[340; 341)
+  WHITESPACE@[341; 343)
+  ENUM_DEF@[343; 367)
+    ENUM_KW@[343; 347)
+    WHITESPACE@[347; 348)
+    NAME@[348; 349)
+      IDENT@[348; 349) "A"
+    WHITESPACE@[349; 350)
+    ENUM_VARIANT_LIST@[350; 367)
+      L_CURLY@[350; 351)
+      WHITESPACE@[351; 356)
+      ENUM_VARIANT@[356; 365)
+        NAME@[356; 357)
+          IDENT@[356; 357) "B"
+        POS_FIELD_DEF_LIST@[357; 365)
+          L_PAREN@[357; 358)
+          POS_FIELD_DEF@[358; 360)
+            PATH_TYPE@[358; 360)
+              PATH@[358; 360)
+                PATH_SEGMENT@[358; 360)
+                  NAME_REF@[358; 360)
+                    IDENT@[358; 360) "i8"
+          COMMA@[360; 361)
+          WHITESPACE@[361; 362)
+          POS_FIELD_DEF@[362; 364)
+            PATH_TYPE@[362; 364)
+              PATH@[362; 364)
+                PATH_SEGMENT@[362; 364)
+                  NAME_REF@[362; 364)
+                    IDENT@[362; 364) "i8"
+          R_PAREN@[364; 365)
+      WHITESPACE@[365; 366)
+      R_CURLY@[366; 367)
+  WHITESPACE@[367; 369)
+  FN_DEF@[369; 394)
+    FN_KW@[369; 371)
+    WHITESPACE@[371; 372)
+    NAME@[372; 375)
+      IDENT@[372; 375) "foo"
+    PARAM_LIST@[375; 391)
+      L_PAREN@[375; 376)
+      PARAM@[376; 390)
+        RANGE_PAT@[376; 386)
+          LITERAL_PAT@[376; 380)
+            MINUS@[376; 377)
+            LITERAL@[377; 380)
+              INT_NUMBER@[377; 380) "128"
+          DOTDOTEQ@[380; 383)
+          LITERAL_PAT@[383; 386)
+            LITERAL@[383; 386)
+              INT_NUMBER@[383; 386) "127"
+        COLON@[386; 387)
+        WHITESPACE@[387; 388)
+        PATH_TYPE@[388; 390)
+          PATH@[388; 390)
+            PATH_SEGMENT@[388; 390)
+              NAME_REF@[388; 390)
+                IDENT@[388; 390) "i8"
+      R_PAREN@[390; 391)
+    WHITESPACE@[391; 392)
+    BLOCK@[392; 394)
+      L_CURLY@[392; 393)
+      R_CURLY@[393; 394)
+  WHITESPACE@[394; 395)