From dc40f1298a8d4dcb7a26d5af38c4fb7ef3d6c5df Mon Sep 17 00:00:00 2001
From: Aleksey Kladov <aleksey.kladov@gmail.com>
Date: Fri, 24 Aug 2018 01:19:38 +0300
Subject: better self-types

---
 .../tests/data/parser/inline/0055_self_param.rs    |  1 +
 .../tests/data/parser/inline/0055_self_param.txt   | 27 ++++++++--
 .../data/parser/inline/0104_arb_self_types.rs      |  2 +-
 .../data/parser/inline/0104_arb_self_types.txt     | 62 +++++++++++-----------
 4 files changed, 56 insertions(+), 36 deletions(-)

(limited to 'crates/libsyntax2/tests/data/parser/inline')

diff --git a/crates/libsyntax2/tests/data/parser/inline/0055_self_param.rs b/crates/libsyntax2/tests/data/parser/inline/0055_self_param.rs
index 7bb1ca50c..80c0a43f5 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0055_self_param.rs
+++ b/crates/libsyntax2/tests/data/parser/inline/0055_self_param.rs
@@ -3,4 +3,5 @@ impl S {
     fn b(&self,) {}
     fn c(&'a self,) {}
     fn d(&'a mut self, x: i32) {}
+    fn e(mut self) {}
 }
diff --git a/crates/libsyntax2/tests/data/parser/inline/0055_self_param.txt b/crates/libsyntax2/tests/data/parser/inline/0055_self_param.txt
index 8b420909f..dd21dfe94 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0055_self_param.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0055_self_param.txt
@@ -1,5 +1,5 @@
-FILE@[0; 106)
-  IMPL_ITEM@[0; 105)
+FILE@[0; 128)
+  IMPL_ITEM@[0; 127)
     IMPL_KW@[0; 4)
     WHITESPACE@[4; 5)
     PATH_TYPE@[5; 6)
@@ -93,6 +93,23 @@ FILE@[0; 106)
       BLOCK_EXPR@[101; 103)
         L_CURLY@[101; 102)
         R_CURLY@[102; 103)
-    WHITESPACE@[103; 104)
-    R_CURLY@[104; 105)
-  WHITESPACE@[105; 106)
+    WHITESPACE@[103; 108)
+    FN_DEF@[108; 125)
+      FN_KW@[108; 110)
+      WHITESPACE@[110; 111)
+      NAME@[111; 112)
+        IDENT@[111; 112) "e"
+      PARAM_LIST@[112; 122)
+        L_PAREN@[112; 113)
+        SELF_PARAM@[113; 121)
+          MUT_KW@[113; 116)
+          WHITESPACE@[116; 117)
+          SELF_KW@[117; 121)
+        R_PAREN@[121; 122)
+      WHITESPACE@[122; 123)
+      BLOCK_EXPR@[123; 125)
+        L_CURLY@[123; 124)
+        R_CURLY@[124; 125)
+    WHITESPACE@[125; 126)
+    R_CURLY@[126; 127)
+  WHITESPACE@[127; 128)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.rs b/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.rs
index 2bf2a69f6..6a170d5ac 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.rs
+++ b/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.rs
@@ -1,4 +1,4 @@
 impl S {
     fn a(self: &Self) {}
-    fn b(self: Box<Self>) {}
+    fn b(mut self: Box<Self>) {}
 }
diff --git a/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.txt b/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.txt
index 41e3505fe..de94b4c63 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0104_arb_self_types.txt
@@ -1,5 +1,5 @@
-FILE@[0; 65)
-  IMPL_ITEM@[0; 64)
+FILE@[0; 69)
+  IMPL_ITEM@[0; 68)
     IMPL_KW@[0; 4)
     WHITESPACE@[4; 5)
     PATH_TYPE@[5; 6)
@@ -34,36 +34,38 @@ FILE@[0; 65)
         L_CURLY@[31; 32)
         R_CURLY@[32; 33)
     WHITESPACE@[33; 38)
-    FN_DEF@[38; 62)
+    FN_DEF@[38; 66)
       FN_KW@[38; 40)
       WHITESPACE@[40; 41)
       NAME@[41; 42)
         IDENT@[41; 42) "b"
-      PARAM_LIST@[42; 59)
+      PARAM_LIST@[42; 63)
         L_PAREN@[42; 43)
-        SELF_PARAM@[43; 58)
-          SELF_KW@[43; 47)
-          COLON@[47; 48)
-          WHITESPACE@[48; 49)
-          PATH_TYPE@[49; 58)
-            PATH@[49; 58)
-              PATH_SEGMENT@[49; 58)
-                NAME_REF@[49; 52)
-                  IDENT@[49; 52) "Box"
-                TYPE_ARG_LIST@[52; 58)
-                  L_ANGLE@[52; 53)
-                  TYPE_ARG@[53; 57)
-                    PATH_TYPE@[53; 57)
-                      PATH@[53; 57)
-                        PATH_SEGMENT@[53; 57)
-                          NAME_REF@[53; 57)
-                            IDENT@[53; 57) "Self"
-                  R_ANGLE@[57; 58)
-        R_PAREN@[58; 59)
-      WHITESPACE@[59; 60)
-      BLOCK_EXPR@[60; 62)
-        L_CURLY@[60; 61)
-        R_CURLY@[61; 62)
-    WHITESPACE@[62; 63)
-    R_CURLY@[63; 64)
-  WHITESPACE@[64; 65)
+        SELF_PARAM@[43; 62)
+          MUT_KW@[43; 46)
+          WHITESPACE@[46; 47)
+          SELF_KW@[47; 51)
+          COLON@[51; 52)
+          WHITESPACE@[52; 53)
+          PATH_TYPE@[53; 62)
+            PATH@[53; 62)
+              PATH_SEGMENT@[53; 62)
+                NAME_REF@[53; 56)
+                  IDENT@[53; 56) "Box"
+                TYPE_ARG_LIST@[56; 62)
+                  L_ANGLE@[56; 57)
+                  TYPE_ARG@[57; 61)
+                    PATH_TYPE@[57; 61)
+                      PATH@[57; 61)
+                        PATH_SEGMENT@[57; 61)
+                          NAME_REF@[57; 61)
+                            IDENT@[57; 61) "Self"
+                  R_ANGLE@[61; 62)
+        R_PAREN@[62; 63)
+      WHITESPACE@[63; 64)
+      BLOCK_EXPR@[64; 66)
+        L_CURLY@[64; 65)
+        R_CURLY@[65; 66)
+    WHITESPACE@[66; 67)
+    R_CURLY@[67; 68)
+  WHITESPACE@[68; 69)
-- 
cgit v1.2.3