From 58d14bcaf70662506e1a289494365d976b40fc4e Mon Sep 17 00:00:00 2001
From: Ville Penttinen <villem.penttinen@gmail.com>
Date: Sun, 17 Feb 2019 22:19:21 +0200
Subject: Enable parsing attributes for generic lifetimes and type parameters

---
 .../ok/0122_generic_lifetime_type_attribute.rs     |  2 +
 .../ok/0122_generic_lifetime_type_attribute.txt    | 61 ++++++++++++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs
 create mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt

(limited to 'crates/ra_syntax/tests')

diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs
new file mode 100644
index 000000000..e8fdf741f
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.rs
@@ -0,0 +1,2 @@
+fn foo<#[derive(Lifetime)] 'a, #[derive(Type)] T>(_: &'a T) {
+}
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt
new file mode 100644
index 000000000..6a6aa89e8
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt
@@ -0,0 +1,61 @@
+SOURCE_FILE@[0; 64)
+  FN_DEF@[0; 63)
+    FN_KW@[0; 2)
+    WHITESPACE@[2; 3)
+    NAME@[3; 6)
+      IDENT@[3; 6) "foo"
+    TYPE_PARAM_LIST@[6; 49)
+      L_ANGLE@[6; 7)
+      LIFETIME_PARAM@[7; 29)
+        ATTR@[7; 26)
+          POUND@[7; 8)
+          TOKEN_TREE@[8; 26)
+            L_BRACK@[8; 9)
+            IDENT@[9; 15) "derive"
+            TOKEN_TREE@[15; 25)
+              L_PAREN@[15; 16)
+              IDENT@[16; 24) "Lifetime"
+              R_PAREN@[24; 25)
+            R_BRACK@[25; 26)
+        WHITESPACE@[26; 27)
+        LIFETIME@[27; 29) "'a"
+      COMMA@[29; 30)
+      WHITESPACE@[30; 31)
+      TYPE_PARAM@[31; 48)
+        ATTR@[31; 46)
+          POUND@[31; 32)
+          TOKEN_TREE@[32; 46)
+            L_BRACK@[32; 33)
+            IDENT@[33; 39) "derive"
+            TOKEN_TREE@[39; 45)
+              L_PAREN@[39; 40)
+              IDENT@[40; 44) "Type"
+              R_PAREN@[44; 45)
+            R_BRACK@[45; 46)
+        WHITESPACE@[46; 47)
+        NAME@[47; 48)
+          IDENT@[47; 48) "T"
+      R_ANGLE@[48; 49)
+    PARAM_LIST@[49; 59)
+      L_PAREN@[49; 50)
+      PARAM@[50; 58)
+        PLACEHOLDER_PAT@[50; 51)
+          UNDERSCORE@[50; 51)
+        COLON@[51; 52)
+        WHITESPACE@[52; 53)
+        REFERENCE_TYPE@[53; 58)
+          AMP@[53; 54)
+          LIFETIME@[54; 56) "'a"
+          WHITESPACE@[56; 57)
+          PATH_TYPE@[57; 58)
+            PATH@[57; 58)
+              PATH_SEGMENT@[57; 58)
+                NAME_REF@[57; 58)
+                  IDENT@[57; 58) "T"
+      R_PAREN@[58; 59)
+    WHITESPACE@[59; 60)
+    BLOCK@[60; 63)
+      L_CURLY@[60; 61)
+      WHITESPACE@[61; 62)
+      R_CURLY@[62; 63)
+  WHITESPACE@[63; 64)
-- 
cgit v1.2.3