aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_assists/src/handlers/generate_function.rs4
-rw-r--r--crates/ra_assists/src/handlers/generate_impl.rs4
-rw-r--r--crates/ra_assists/src/handlers/generate_new.rs5
-rw-r--r--crates/ra_assists/src/handlers/introduce_named_lifetime.rs12
-rw-r--r--crates/ra_assists/src/handlers/move_bounds.rs2
-rw-r--r--crates/ra_hir_def/src/generics.rs8
-rw-r--r--crates/ra_hir_def/src/item_tree/lower.rs6
-rw-r--r--crates/ra_hir_expand/src/builtin_derive.rs8
-rw-r--r--crates/ra_ide/src/display.rs4
-rw-r--r--crates/ra_ide/src/extend_selection.rs2
-rw-r--r--crates/ra_ide/src/file_structure.rs4
-rw-r--r--crates/ra_ide/src/references.rs2
-rw-r--r--crates/ra_parser/src/grammar/type_params.rs2
-rw-r--r--crates/ra_parser/src/syntax_kind/generated.rs2
-rw-r--r--crates/ra_syntax/src/ast.rs4
-rw-r--r--crates/ra_syntax/src/ast/generated/nodes.rs30
-rw-r--r--crates/ra_syntax/src/ast/make.rs2
-rw-r--r--crates/ra_syntax/src/ast/traits.rs4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast18
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast6
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast30
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0019_enums.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0032_where_for.rast4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast8
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast2
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast26
-rw-r--r--xtask/src/ast_src.rs2
-rw-r--r--xtask/src/codegen/gen_syntax.rs2
-rw-r--r--xtask/src/codegen/rust.ungram20
53 files changed, 155 insertions, 154 deletions
diff --git a/crates/ra_assists/src/handlers/generate_function.rs b/crates/ra_assists/src/handlers/generate_function.rs
index 006d0ffb2..56510861d 100644
--- a/crates/ra_assists/src/handlers/generate_function.rs
+++ b/crates/ra_assists/src/handlers/generate_function.rs
@@ -104,7 +104,7 @@ impl FunctionTemplate {
104struct FunctionBuilder { 104struct FunctionBuilder {
105 target: GeneratedFunctionTarget, 105 target: GeneratedFunctionTarget,
106 fn_name: ast::Name, 106 fn_name: ast::Name,
107 type_params: Option<ast::TypeParamList>, 107 type_params: Option<ast::GenericParamList>,
108 params: ast::ParamList, 108 params: ast::ParamList,
109 file: FileId, 109 file: FileId,
110 needs_pub: bool, 110 needs_pub: bool,
@@ -200,7 +200,7 @@ fn fn_args(
200 ctx: &AssistContext, 200 ctx: &AssistContext,
201 target_module: hir::Module, 201 target_module: hir::Module,
202 call: &ast::CallExpr, 202 call: &ast::CallExpr,
203) -> Option<(Option<ast::TypeParamList>, ast::ParamList)> { 203) -> Option<(Option<ast::GenericParamList>, ast::ParamList)> {
204 let mut arg_names = Vec::new(); 204 let mut arg_names = Vec::new();
205 let mut arg_types = Vec::new(); 205 let mut arg_types = Vec::new();
206 for arg in call.arg_list()?.args() { 206 for arg in call.arg_list()?.args() {
diff --git a/crates/ra_assists/src/handlers/generate_impl.rs b/crates/ra_assists/src/handlers/generate_impl.rs
index 42eb4defa..d9b87c9c0 100644
--- a/crates/ra_assists/src/handlers/generate_impl.rs
+++ b/crates/ra_assists/src/handlers/generate_impl.rs
@@ -1,4 +1,4 @@
1use ra_syntax::ast::{self, AstNode, NameOwner, TypeParamsOwner}; 1use ra_syntax::ast::{self, AstNode, GenericParamsOwner, NameOwner};
2use stdx::{format_to, SepBy}; 2use stdx::{format_to, SepBy};
3 3
4use crate::{AssistContext, AssistId, AssistKind, Assists}; 4use crate::{AssistContext, AssistId, AssistKind, Assists};
@@ -31,7 +31,7 @@ pub(crate) fn generate_impl(acc: &mut Assists, ctx: &AssistContext) -> Option<()
31 format!("Generate impl for `{}`", name), 31 format!("Generate impl for `{}`", name),
32 target, 32 target,
33 |edit| { 33 |edit| {
34 let type_params = nominal.type_param_list(); 34 let type_params = nominal.generic_param_list();
35 let start_offset = nominal.syntax().text_range().end(); 35 let start_offset = nominal.syntax().text_range().end();
36 let mut buf = String::new(); 36 let mut buf = String::new();
37 buf.push_str("\n\nimpl"); 37 buf.push_str("\n\nimpl");
diff --git a/crates/ra_assists/src/handlers/generate_new.rs b/crates/ra_assists/src/handlers/generate_new.rs
index 4dff0ae4d..340f9b103 100644
--- a/crates/ra_assists/src/handlers/generate_new.rs
+++ b/crates/ra_assists/src/handlers/generate_new.rs
@@ -1,7 +1,8 @@
1use hir::Adt; 1use hir::Adt;
2use ra_syntax::{ 2use ra_syntax::{
3 ast::{ 3 ast::{
4 self, AstNode, NameOwner, StructKind, TypeAscriptionOwner, TypeParamsOwner, VisibilityOwner, 4 self, AstNode, GenericParamsOwner, NameOwner, StructKind, TypeAscriptionOwner,
5 VisibilityOwner,
5 }, 6 },
6 T, 7 T,
7}; 8};
@@ -91,7 +92,7 @@ pub(crate) fn generate_new(acc: &mut Assists, ctx: &AssistContext) -> Option<()>
91// Generates the surrounding `impl Type { <code> }` including type and lifetime 92// Generates the surrounding `impl Type { <code> }` including type and lifetime
92// parameters 93// parameters
93fn generate_impl_text(strukt: &ast::StructDef, code: &str) -> String { 94fn generate_impl_text(strukt: &ast::StructDef, code: &str) -> String {
94 let type_params = strukt.type_param_list(); 95 let type_params = strukt.generic_param_list();
95 let mut buf = String::with_capacity(code.len()); 96 let mut buf = String::with_capacity(code.len());
96 buf.push_str("\n\nimpl"); 97 buf.push_str("\n\nimpl");
97 if let Some(type_params) = &type_params { 98 if let Some(type_params) = &type_params {
diff --git a/crates/ra_assists/src/handlers/introduce_named_lifetime.rs b/crates/ra_assists/src/handlers/introduce_named_lifetime.rs
index f3774fab1..4ad173ef0 100644
--- a/crates/ra_assists/src/handlers/introduce_named_lifetime.rs
+++ b/crates/ra_assists/src/handlers/introduce_named_lifetime.rs
@@ -1,5 +1,5 @@
1use ra_syntax::{ 1use ra_syntax::{
2 ast::{self, NameOwner, TypeAscriptionOwner, TypeParamsOwner}, 2 ast::{self, GenericParamsOwner, NameOwner, TypeAscriptionOwner},
3 AstNode, SyntaxKind, TextRange, TextSize, 3 AstNode, SyntaxKind, TextRange, TextSize,
4}; 4};
5use rustc_hash::FxHashSet; 5use rustc_hash::FxHashSet;
@@ -54,7 +54,7 @@ fn generate_fn_def_assist(
54 lifetime_loc: TextRange, 54 lifetime_loc: TextRange,
55) -> Option<()> { 55) -> Option<()> {
56 let param_list: ast::ParamList = fn_def.param_list()?; 56 let param_list: ast::ParamList = fn_def.param_list()?;
57 let new_lifetime_param = generate_unique_lifetime_param_name(&fn_def.type_param_list())?; 57 let new_lifetime_param = generate_unique_lifetime_param_name(&fn_def.generic_param_list())?;
58 let end_of_fn_ident = fn_def.name()?.ident_token()?.text_range().end(); 58 let end_of_fn_ident = fn_def.name()?.ident_token()?.text_range().end();
59 let self_param = 59 let self_param =
60 // use the self if it's a reference and has no explicit lifetime 60 // use the self if it's a reference and has no explicit lifetime
@@ -96,7 +96,7 @@ fn generate_impl_def_assist(
96 impl_def: &ast::ImplDef, 96 impl_def: &ast::ImplDef,
97 lifetime_loc: TextRange, 97 lifetime_loc: TextRange,
98) -> Option<()> { 98) -> Option<()> {
99 let new_lifetime_param = generate_unique_lifetime_param_name(&impl_def.type_param_list())?; 99 let new_lifetime_param = generate_unique_lifetime_param_name(&impl_def.generic_param_list())?;
100 let end_of_impl_kw = impl_def.impl_token()?.text_range().end(); 100 let end_of_impl_kw = impl_def.impl_token()?.text_range().end();
101 acc.add(AssistId(ASSIST_NAME, AssistKind::Refactor), ASSIST_LABEL, lifetime_loc, |builder| { 101 acc.add(AssistId(ASSIST_NAME, AssistKind::Refactor), ASSIST_LABEL, lifetime_loc, |builder| {
102 add_lifetime_param(impl_def, builder, end_of_impl_kw, new_lifetime_param); 102 add_lifetime_param(impl_def, builder, end_of_impl_kw, new_lifetime_param);
@@ -107,7 +107,7 @@ fn generate_impl_def_assist(
107/// Given a type parameter list, generate a unique lifetime parameter name 107/// Given a type parameter list, generate a unique lifetime parameter name
108/// which is not in the list 108/// which is not in the list
109fn generate_unique_lifetime_param_name( 109fn generate_unique_lifetime_param_name(
110 existing_type_param_list: &Option<ast::TypeParamList>, 110 existing_type_param_list: &Option<ast::GenericParamList>,
111) -> Option<char> { 111) -> Option<char> {
112 match existing_type_param_list { 112 match existing_type_param_list {
113 Some(type_params) => { 113 Some(type_params) => {
@@ -123,13 +123,13 @@ fn generate_unique_lifetime_param_name(
123 123
124/// Add the lifetime param to `builder`. If there are type parameters in `type_params_owner`, add it to the end. Otherwise 124/// Add the lifetime param to `builder`. If there are type parameters in `type_params_owner`, add it to the end. Otherwise
125/// add new type params brackets with the lifetime parameter at `new_type_params_loc`. 125/// add new type params brackets with the lifetime parameter at `new_type_params_loc`.
126fn add_lifetime_param<TypeParamsOwner: ast::TypeParamsOwner>( 126fn add_lifetime_param<TypeParamsOwner: ast::GenericParamsOwner>(
127 type_params_owner: &TypeParamsOwner, 127 type_params_owner: &TypeParamsOwner,
128 builder: &mut AssistBuilder, 128 builder: &mut AssistBuilder,
129 new_type_params_loc: TextSize, 129 new_type_params_loc: TextSize,
130 new_lifetime_param: char, 130 new_lifetime_param: char,
131) { 131) {
132 match type_params_owner.type_param_list() { 132 match type_params_owner.generic_param_list() {
133 // add the new lifetime parameter to an existing type param list 133 // add the new lifetime parameter to an existing type param list
134 Some(type_params) => { 134 Some(type_params) => {
135 builder.insert( 135 builder.insert(
diff --git a/crates/ra_assists/src/handlers/move_bounds.rs b/crates/ra_assists/src/handlers/move_bounds.rs
index dae6198ed..69ce90fbc 100644
--- a/crates/ra_assists/src/handlers/move_bounds.rs
+++ b/crates/ra_assists/src/handlers/move_bounds.rs
@@ -23,7 +23,7 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
23// } 23// }
24// ``` 24// ```
25pub(crate) fn move_bounds_to_where_clause(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { 25pub(crate) fn move_bounds_to_where_clause(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
26 let type_param_list = ctx.find_node_at_offset::<ast::TypeParamList>()?; 26 let type_param_list = ctx.find_node_at_offset::<ast::GenericParamList>()?;
27 27
28 let mut type_params = type_param_list.type_params(); 28 let mut type_params = type_param_list.type_params();
29 if type_params.all(|p| p.type_bound_list().is_none()) { 29 if type_params.all(|p| p.type_bound_list().is_none()) {
diff --git a/crates/ra_hir_def/src/generics.rs b/crates/ra_hir_def/src/generics.rs
index 6a0f493a7..5fa2fbb3f 100644
--- a/crates/ra_hir_def/src/generics.rs
+++ b/crates/ra_hir_def/src/generics.rs
@@ -12,7 +12,7 @@ use hir_expand::{
12use ra_arena::{map::ArenaMap, Arena}; 12use ra_arena::{map::ArenaMap, Arena};
13use ra_db::FileId; 13use ra_db::FileId;
14use ra_prof::profile; 14use ra_prof::profile;
15use ra_syntax::ast::{self, NameOwner, TypeBoundsOwner, TypeParamsOwner}; 15use ra_syntax::ast::{self, GenericParamsOwner, NameOwner, TypeBoundsOwner};
16 16
17use crate::{ 17use crate::{
18 body::LowerCtx, 18 body::LowerCtx,
@@ -205,9 +205,9 @@ impl GenericParams {
205 &mut self, 205 &mut self,
206 lower_ctx: &LowerCtx, 206 lower_ctx: &LowerCtx,
207 sm: &mut SourceMap, 207 sm: &mut SourceMap,
208 node: &dyn TypeParamsOwner, 208 node: &dyn GenericParamsOwner,
209 ) { 209 ) {
210 if let Some(params) = node.type_param_list() { 210 if let Some(params) = node.generic_param_list() {
211 self.fill_params(lower_ctx, sm, params) 211 self.fill_params(lower_ctx, sm, params)
212 } 212 }
213 if let Some(where_clause) = node.where_clause() { 213 if let Some(where_clause) = node.where_clause() {
@@ -232,7 +232,7 @@ impl GenericParams {
232 &mut self, 232 &mut self,
233 lower_ctx: &LowerCtx, 233 lower_ctx: &LowerCtx,
234 sm: &mut SourceMap, 234 sm: &mut SourceMap,
235 params: ast::TypeParamList, 235 params: ast::GenericParamList,
236 ) { 236 ) {
237 for type_param in params.type_params() { 237 for type_param in params.type_params() {
238 let name = type_param.name().map_or_else(Name::missing, |it| it.as_name()); 238 let name = type_param.name().map_or_else(Name::missing, |it| it.as_name());
diff --git a/crates/ra_hir_def/src/item_tree/lower.rs b/crates/ra_hir_def/src/item_tree/lower.rs
index 4cfc68f53..19d165b5b 100644
--- a/crates/ra_hir_def/src/item_tree/lower.rs
+++ b/crates/ra_hir_def/src/item_tree/lower.rs
@@ -568,10 +568,10 @@ impl Ctx {
568 fn lower_generic_params_and_inner_items( 568 fn lower_generic_params_and_inner_items(
569 &mut self, 569 &mut self,
570 owner: GenericsOwner<'_>, 570 owner: GenericsOwner<'_>,
571 node: &impl ast::TypeParamsOwner, 571 node: &impl ast::GenericParamsOwner,
572 ) -> GenericParamsId { 572 ) -> GenericParamsId {
573 // Generics are part of item headers and may contain inner items we need to collect. 573 // Generics are part of item headers and may contain inner items we need to collect.
574 if let Some(params) = node.type_param_list() { 574 if let Some(params) = node.generic_param_list() {
575 self.collect_inner_items(params.syntax()); 575 self.collect_inner_items(params.syntax());
576 } 576 }
577 if let Some(clause) = node.where_clause() { 577 if let Some(clause) = node.where_clause() {
@@ -584,7 +584,7 @@ impl Ctx {
584 fn lower_generic_params( 584 fn lower_generic_params(
585 &mut self, 585 &mut self,
586 owner: GenericsOwner<'_>, 586 owner: GenericsOwner<'_>,
587 node: &impl ast::TypeParamsOwner, 587 node: &impl ast::GenericParamsOwner,
588 ) -> GenericParamsId { 588 ) -> GenericParamsId {
589 let mut sm = &mut ArenaMap::default(); 589 let mut sm = &mut ArenaMap::default();
590 let mut generics = GenericParams::default(); 590 let mut generics = GenericParams::default();
diff --git a/crates/ra_hir_expand/src/builtin_derive.rs b/crates/ra_hir_expand/src/builtin_derive.rs
index 8f70a3567..3e2f0a520 100644
--- a/crates/ra_hir_expand/src/builtin_derive.rs
+++ b/crates/ra_hir_expand/src/builtin_derive.rs
@@ -4,7 +4,7 @@ use log::debug;
4 4
5use ra_parser::FragmentKind; 5use ra_parser::FragmentKind;
6use ra_syntax::{ 6use ra_syntax::{
7 ast::{self, AstNode, ModuleItemOwner, NameOwner, TypeParamsOwner}, 7 ast::{self, AstNode, GenericParamsOwner, ModuleItemOwner, NameOwner},
8 match_ast, 8 match_ast,
9}; 9};
10 10
@@ -72,9 +72,9 @@ fn parse_adt(tt: &tt::Subtree) -> Result<BasicAdtInfo, mbe::ExpandError> {
72 let node = item.syntax(); 72 let node = item.syntax();
73 let (name, params) = match_ast! { 73 let (name, params) = match_ast! {
74 match node { 74 match node {
75 ast::StructDef(it) => (it.name(), it.type_param_list()), 75 ast::StructDef(it) => (it.name(), it.generic_param_list()),
76 ast::EnumDef(it) => (it.name(), it.type_param_list()), 76 ast::EnumDef(it) => (it.name(), it.generic_param_list()),
77 ast::UnionDef(it) => (it.name(), it.type_param_list()), 77 ast::UnionDef(it) => (it.name(), it.generic_param_list()),
78 _ => { 78 _ => {
79 debug!("unexpected node is {:?}", node); 79 debug!("unexpected node is {:?}", node);
80 return Err(mbe::ExpandError::ConversionError) 80 return Err(mbe::ExpandError::ConversionError)
diff --git a/crates/ra_ide/src/display.rs b/crates/ra_ide/src/display.rs
index 6d93726bf..e81e8436f 100644
--- a/crates/ra_ide/src/display.rs
+++ b/crates/ra_ide/src/display.rs
@@ -5,7 +5,7 @@ mod navigation_target;
5mod short_label; 5mod short_label;
6 6
7use ra_syntax::{ 7use ra_syntax::{
8 ast::{self, AstNode, AttrsOwner, NameOwner, TypeParamsOwner}, 8 ast::{self, AstNode, AttrsOwner, GenericParamsOwner, NameOwner},
9 SyntaxKind::{ATTR, COMMENT}, 9 SyntaxKind::{ATTR, COMMENT},
10}; 10};
11 11
@@ -37,7 +37,7 @@ pub(crate) fn function_declaration(node: &ast::Fn) -> String {
37 if let Some(name) = node.name() { 37 if let Some(name) = node.name() {
38 format_to!(buf, "fn {}", name) 38 format_to!(buf, "fn {}", name)
39 } 39 }
40 if let Some(type_params) = node.type_param_list() { 40 if let Some(type_params) = node.generic_param_list() {
41 format_to!(buf, "{}", type_params); 41 format_to!(buf, "{}", type_params);
42 } 42 }
43 if let Some(param_list) = node.param_list() { 43 if let Some(param_list) = node.param_list() {
diff --git a/crates/ra_ide/src/extend_selection.rs b/crates/ra_ide/src/extend_selection.rs
index 8a6b3ea99..b1c4561c1 100644
--- a/crates/ra_ide/src/extend_selection.rs
+++ b/crates/ra_ide/src/extend_selection.rs
@@ -44,7 +44,7 @@ fn try_extend_selection(
44 RECORD_FIELD_LIST, 44 RECORD_FIELD_LIST,
45 ENUM_VARIANT_LIST, 45 ENUM_VARIANT_LIST,
46 USE_TREE_LIST, 46 USE_TREE_LIST,
47 TYPE_PARAM_LIST, 47 GENERIC_PARAM_LIST,
48 TYPE_ARG_LIST, 48 TYPE_ARG_LIST,
49 TYPE_BOUND_LIST, 49 TYPE_BOUND_LIST,
50 PARAM_LIST, 50 PARAM_LIST,
diff --git a/crates/ra_ide/src/file_structure.rs b/crates/ra_ide/src/file_structure.rs
index 8ef977761..05ccc0b73 100644
--- a/crates/ra_ide/src/file_structure.rs
+++ b/crates/ra_ide/src/file_structure.rs
@@ -1,5 +1,5 @@
1use ra_syntax::{ 1use ra_syntax::{
2 ast::{self, AttrsOwner, NameOwner, TypeAscriptionOwner, TypeParamsOwner}, 2 ast::{self, AttrsOwner, GenericParamsOwner, NameOwner, TypeAscriptionOwner},
3 match_ast, AstNode, SourceFile, SyntaxKind, SyntaxNode, TextRange, WalkEvent, 3 match_ast, AstNode, SourceFile, SyntaxKind, SyntaxNode, TextRange, WalkEvent,
4}; 4};
5 5
@@ -113,7 +113,7 @@ fn structure_node(node: &SyntaxNode) -> Option<StructureNode> {
113 match node { 113 match node {
114 ast::Fn(it) => { 114 ast::Fn(it) => {
115 let mut detail = String::from("fn"); 115 let mut detail = String::from("fn");
116 if let Some(type_param_list) = it.type_param_list() { 116 if let Some(type_param_list) = it.generic_param_list() {
117 collapse_ws(type_param_list.syntax(), &mut detail); 117 collapse_ws(type_param_list.syntax(), &mut detail);
118 } 118 }
119 if let Some(param_list) = it.param_list() { 119 if let Some(param_list) = it.param_list() {
diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs
index 8d3452a83..94d03a07f 100644
--- a/crates/ra_ide/src/references.rs
+++ b/crates/ra_ide/src/references.rs
@@ -175,7 +175,7 @@ fn get_struct_def_name_for_struct_literal_search(
175 return name.syntax().ancestors().find_map(ast::StructDef::cast).and_then(|l| l.name()); 175 return name.syntax().ancestors().find_map(ast::StructDef::cast).and_then(|l| l.name());
176 } 176 }
177 if sema 177 if sema
178 .find_node_at_offset_with_descend::<ast::TypeParamList>( 178 .find_node_at_offset_with_descend::<ast::GenericParamList>(
179 &syntax, 179 &syntax,
180 left.text_range().start(), 180 left.text_range().start(),
181 ) 181 )
diff --git a/crates/ra_parser/src/grammar/type_params.rs b/crates/ra_parser/src/grammar/type_params.rs
index d1330d4b9..90dabb4c0 100644
--- a/crates/ra_parser/src/grammar/type_params.rs
+++ b/crates/ra_parser/src/grammar/type_params.rs
@@ -36,7 +36,7 @@ fn type_param_list(p: &mut Parser) {
36 } 36 }
37 } 37 }
38 p.expect(T![>]); 38 p.expect(T![>]);
39 m.complete(p, TYPE_PARAM_LIST); 39 m.complete(p, GENERIC_PARAM_LIST);
40} 40}
41 41
42fn lifetime_param(p: &mut Parser, m: Marker) { 42fn lifetime_param(p: &mut Parser, m: Marker) {
diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs
index b84c3fc79..b83690865 100644
--- a/crates/ra_parser/src/syntax_kind/generated.rs
+++ b/crates/ra_parser/src/syntax_kind/generated.rs
@@ -230,7 +230,7 @@ pub enum SyntaxKind {
230 NAME_REF, 230 NAME_REF,
231 LET_STMT, 231 LET_STMT,
232 EXPR_STMT, 232 EXPR_STMT,
233 TYPE_PARAM_LIST, 233 GENERIC_PARAM_LIST,
234 LIFETIME_PARAM, 234 LIFETIME_PARAM,
235 TYPE_PARAM, 235 TYPE_PARAM,
236 CONST_PARAM, 236 CONST_PARAM,
diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs
index c65c485cb..452e67c70 100644
--- a/crates/ra_syntax/src/ast.rs
+++ b/crates/ra_syntax/src/ast.rs
@@ -286,7 +286,7 @@ where
286 let mut bounds = pred.type_bound_list().unwrap().bounds(); 286 let mut bounds = pred.type_bound_list().unwrap().bounds();
287 287
288 assert!(pred.for_token().is_none()); 288 assert!(pred.for_token().is_none());
289 assert!(pred.type_param_list().is_none()); 289 assert!(pred.generic_param_list().is_none());
290 assert_eq!("T", pred.type_ref().unwrap().syntax().text().to_string()); 290 assert_eq!("T", pred.type_ref().unwrap().syntax().text().to_string());
291 assert_bound("Clone", bounds.next()); 291 assert_bound("Clone", bounds.next());
292 assert_bound("Copy", bounds.next()); 292 assert_bound("Copy", bounds.next());
@@ -325,7 +325,7 @@ where
325 let mut bounds = pred.type_bound_list().unwrap().bounds(); 325 let mut bounds = pred.type_bound_list().unwrap().bounds();
326 326
327 assert!(pred.for_token().is_some()); 327 assert!(pred.for_token().is_some());
328 assert_eq!("<'a>", pred.type_param_list().unwrap().syntax().text().to_string()); 328 assert_eq!("<'a>", pred.generic_param_list().unwrap().syntax().text().to_string());
329 assert_eq!("F", pred.type_ref().unwrap().syntax().text().to_string()); 329 assert_eq!("F", pred.type_ref().unwrap().syntax().text().to_string());
330 assert_bound("Fn(&'a str)", bounds.next()); 330 assert_bound("Fn(&'a str)", bounds.next());
331} 331}
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs
index ad8ccf1ce..efe0cbe3a 100644
--- a/crates/ra_syntax/src/ast/generated/nodes.rs
+++ b/crates/ra_syntax/src/ast/generated/nodes.rs
@@ -50,7 +50,7 @@ pub struct EnumDef {
50impl ast::AttrsOwner for EnumDef {} 50impl ast::AttrsOwner for EnumDef {}
51impl ast::NameOwner for EnumDef {} 51impl ast::NameOwner for EnumDef {}
52impl ast::VisibilityOwner for EnumDef {} 52impl ast::VisibilityOwner for EnumDef {}
53impl ast::TypeParamsOwner for EnumDef {} 53impl ast::GenericParamsOwner for EnumDef {}
54impl EnumDef { 54impl EnumDef {
55 pub fn enum_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![enum]) } 55 pub fn enum_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![enum]) }
56 pub fn variant_list(&self) -> Option<EnumVariantList> { support::child(&self.syntax) } 56 pub fn variant_list(&self) -> Option<EnumVariantList> { support::child(&self.syntax) }
@@ -85,7 +85,7 @@ pub struct Fn {
85impl ast::AttrsOwner for Fn {} 85impl ast::AttrsOwner for Fn {}
86impl ast::NameOwner for Fn {} 86impl ast::NameOwner for Fn {}
87impl ast::VisibilityOwner for Fn {} 87impl ast::VisibilityOwner for Fn {}
88impl ast::TypeParamsOwner for Fn {} 88impl ast::GenericParamsOwner for Fn {}
89impl Fn { 89impl Fn {
90 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } 90 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) }
91 pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) } 91 pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) }
@@ -104,7 +104,7 @@ pub struct ImplDef {
104} 104}
105impl ast::AttrsOwner for ImplDef {} 105impl ast::AttrsOwner for ImplDef {}
106impl ast::VisibilityOwner for ImplDef {} 106impl ast::VisibilityOwner for ImplDef {}
107impl ast::TypeParamsOwner for ImplDef {} 107impl ast::GenericParamsOwner for ImplDef {}
108impl ImplDef { 108impl ImplDef {
109 pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) } 109 pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) }
110 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } 110 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) }
@@ -161,7 +161,7 @@ pub struct StructDef {
161impl ast::AttrsOwner for StructDef {} 161impl ast::AttrsOwner for StructDef {}
162impl ast::NameOwner for StructDef {} 162impl ast::NameOwner for StructDef {}
163impl ast::VisibilityOwner for StructDef {} 163impl ast::VisibilityOwner for StructDef {}
164impl ast::TypeParamsOwner for StructDef {} 164impl ast::GenericParamsOwner for StructDef {}
165impl StructDef { 165impl StructDef {
166 pub fn struct_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![struct]) } 166 pub fn struct_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![struct]) }
167 pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![;]) } 167 pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![;]) }
@@ -174,7 +174,7 @@ pub struct TraitDef {
174impl ast::AttrsOwner for TraitDef {} 174impl ast::AttrsOwner for TraitDef {}
175impl ast::NameOwner for TraitDef {} 175impl ast::NameOwner for TraitDef {}
176impl ast::VisibilityOwner for TraitDef {} 176impl ast::VisibilityOwner for TraitDef {}
177impl ast::TypeParamsOwner for TraitDef {} 177impl ast::GenericParamsOwner for TraitDef {}
178impl ast::TypeBoundsOwner for TraitDef {} 178impl ast::TypeBoundsOwner for TraitDef {}
179impl TraitDef { 179impl TraitDef {
180 pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } 180 pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) }
@@ -189,7 +189,7 @@ pub struct TypeAlias {
189impl ast::AttrsOwner for TypeAlias {} 189impl ast::AttrsOwner for TypeAlias {}
190impl ast::NameOwner for TypeAlias {} 190impl ast::NameOwner for TypeAlias {}
191impl ast::VisibilityOwner for TypeAlias {} 191impl ast::VisibilityOwner for TypeAlias {}
192impl ast::TypeParamsOwner for TypeAlias {} 192impl ast::GenericParamsOwner for TypeAlias {}
193impl ast::TypeBoundsOwner for TypeAlias {} 193impl ast::TypeBoundsOwner for TypeAlias {}
194impl TypeAlias { 194impl TypeAlias {
195 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } 195 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) }
@@ -205,7 +205,7 @@ pub struct UnionDef {
205impl ast::AttrsOwner for UnionDef {} 205impl ast::AttrsOwner for UnionDef {}
206impl ast::NameOwner for UnionDef {} 206impl ast::NameOwner for UnionDef {}
207impl ast::VisibilityOwner for UnionDef {} 207impl ast::VisibilityOwner for UnionDef {}
208impl ast::TypeParamsOwner for UnionDef {} 208impl ast::GenericParamsOwner for UnionDef {}
209impl UnionDef { 209impl UnionDef {
210 pub fn union_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![union]) } 210 pub fn union_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![union]) }
211 pub fn record_field_def_list(&self) -> Option<RecordFieldDefList> { 211 pub fn record_field_def_list(&self) -> Option<RecordFieldDefList> {
@@ -307,10 +307,10 @@ impl Abi {
307 pub fn extern_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![extern]) } 307 pub fn extern_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![extern]) }
308} 308}
309#[derive(Debug, Clone, PartialEq, Eq, Hash)] 309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
310pub struct TypeParamList { 310pub struct GenericParamList {
311 pub(crate) syntax: SyntaxNode, 311 pub(crate) syntax: SyntaxNode,
312} 312}
313impl TypeParamList { 313impl GenericParamList {
314 pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } 314 pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) }
315 pub fn type_params(&self) -> AstChildren<TypeParam> { support::children(&self.syntax) } 315 pub fn type_params(&self) -> AstChildren<TypeParam> { support::children(&self.syntax) }
316 pub fn lifetime_params(&self) -> AstChildren<LifetimeParam> { support::children(&self.syntax) } 316 pub fn lifetime_params(&self) -> AstChildren<LifetimeParam> { support::children(&self.syntax) }
@@ -557,7 +557,7 @@ pub struct ForType {
557} 557}
558impl ForType { 558impl ForType {
559 pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) } 559 pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) }
560 pub fn type_param_list(&self) -> Option<TypeParamList> { support::child(&self.syntax) } 560 pub fn generic_param_list(&self) -> Option<GenericParamList> { support::child(&self.syntax) }
561 pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) } 561 pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) }
562} 562}
563#[derive(Debug, Clone, PartialEq, Eq, Hash)] 563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -1172,7 +1172,7 @@ pub struct WherePred {
1172impl ast::TypeBoundsOwner for WherePred {} 1172impl ast::TypeBoundsOwner for WherePred {}
1173impl WherePred { 1173impl WherePred {
1174 pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) } 1174 pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) }
1175 pub fn type_param_list(&self) -> Option<TypeParamList> { support::child(&self.syntax) } 1175 pub fn generic_param_list(&self) -> Option<GenericParamList> { support::child(&self.syntax) }
1176 pub fn lifetime_token(&self) -> Option<SyntaxToken> { 1176 pub fn lifetime_token(&self) -> Option<SyntaxToken> {
1177 support::token(&self.syntax, T![lifetime]) 1177 support::token(&self.syntax, T![lifetime])
1178 } 1178 }
@@ -1397,8 +1397,8 @@ pub enum AdtDef {
1397 UnionDef(UnionDef), 1397 UnionDef(UnionDef),
1398} 1398}
1399impl ast::AttrsOwner for AdtDef {} 1399impl ast::AttrsOwner for AdtDef {}
1400impl ast::GenericParamsOwner for AdtDef {}
1400impl ast::NameOwner for AdtDef {} 1401impl ast::NameOwner for AdtDef {}
1401impl ast::TypeParamsOwner for AdtDef {}
1402impl ast::VisibilityOwner for AdtDef {} 1402impl ast::VisibilityOwner for AdtDef {}
1403impl AstNode for SourceFile { 1403impl AstNode for SourceFile {
1404 fn can_cast(kind: SyntaxKind) -> bool { kind == SOURCE_FILE } 1404 fn can_cast(kind: SyntaxKind) -> bool { kind == SOURCE_FILE }
@@ -1675,8 +1675,8 @@ impl AstNode for Abi {
1675 } 1675 }
1676 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1676 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1677} 1677}
1678impl AstNode for TypeParamList { 1678impl AstNode for GenericParamList {
1679 fn can_cast(kind: SyntaxKind) -> bool { kind == TYPE_PARAM_LIST } 1679 fn can_cast(kind: SyntaxKind) -> bool { kind == GENERIC_PARAM_LIST }
1680 fn cast(syntax: SyntaxNode) -> Option<Self> { 1680 fn cast(syntax: SyntaxNode) -> Option<Self> {
1681 if Self::can_cast(syntax.kind()) { 1681 if Self::can_cast(syntax.kind()) {
1682 Some(Self { syntax }) 1682 Some(Self { syntax })
@@ -3583,7 +3583,7 @@ impl std::fmt::Display for Abi {
3583 std::fmt::Display::fmt(self.syntax(), f) 3583 std::fmt::Display::fmt(self.syntax(), f)
3584 } 3584 }
3585} 3585}
3586impl std::fmt::Display for TypeParamList { 3586impl std::fmt::Display for GenericParamList {
3587 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3587 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3588 std::fmt::Display::fmt(self.syntax(), f) 3588 std::fmt::Display::fmt(self.syntax(), f)
3589 } 3589 }
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs
index ef235680f..4759f23a5 100644
--- a/crates/ra_syntax/src/ast/make.rs
+++ b/crates/ra_syntax/src/ast/make.rs
@@ -291,7 +291,7 @@ pub fn visibility_pub_crate() -> ast::Visibility {
291pub fn fn_def( 291pub fn fn_def(
292 visibility: Option<ast::Visibility>, 292 visibility: Option<ast::Visibility>,
293 fn_name: ast::Name, 293 fn_name: ast::Name,
294 type_params: Option<ast::TypeParamList>, 294 type_params: Option<ast::GenericParamList>,
295 params: ast::ParamList, 295 params: ast::ParamList,
296 body: ast::BlockExpr, 296 body: ast::BlockExpr,
297) -> ast::Fn { 297) -> ast::Fn {
diff --git a/crates/ra_syntax/src/ast/traits.rs b/crates/ra_syntax/src/ast/traits.rs
index 9fe0b93c1..113bd5d82 100644
--- a/crates/ra_syntax/src/ast/traits.rs
+++ b/crates/ra_syntax/src/ast/traits.rs
@@ -49,8 +49,8 @@ pub trait ModuleItemOwner: AstNode {
49 } 49 }
50} 50}
51 51
52pub trait TypeParamsOwner: AstNode { 52pub trait GenericParamsOwner: AstNode {
53 fn type_param_list(&self) -> Option<ast::TypeParamList> { 53 fn generic_param_list(&self) -> Option<ast::GenericParamList> {
54 support::child(self.syntax()) 54 support::child(self.syntax())
55 } 55 }
56 56
diff --git a/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast b/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
index aca02ece4..10081a870 100644
--- a/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
+++ b/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "S" 6 [email protected] "S"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] "90" 10 [email protected] "90"
diff --git a/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast b/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast
index c8bf96550..d62906b99 100644
--- a/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast
+++ b/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast
@@ -10,7 +10,7 @@ [email protected]
10 [email protected] 10 [email protected]
11 [email protected] 11 [email protected]
12 [email protected] "process" 12 [email protected] "process"
13 TYP[email protected] 13 GENERIC[email protected]
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "'a" 16 [email protected] "'a"
diff --git a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast
index 1ab045a44..a1f39b22a 100644
--- a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "foo" 6 [email protected] "foo"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
index 1e94e72bc..4c2d1ad68 100644
--- a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
+++ b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "f" 6 [email protected] "f"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -39,7 +39,7 @@ [email protected]
39 [email protected] "(" 39 [email protected] "("
40 [email protected] 40 [email protected]
41 [email protected] "for" 41 [email protected] "for"
42 TYP[email protected] 42 GENERIC[email protected]
43 [email protected] "<" 43 [email protected] "<"
44 [email protected] 44 [email protected]
45 [email protected] "\'a" 45 [email protected] "\'a"
@@ -122,7 +122,7 @@ [email protected]
122 [email protected] "(" 122 [email protected] "("
123 [email protected] 123 [email protected]
124 [email protected] "for" 124 [email protected] "for"
125 TYP[email protected] 125 GENERIC[email protected]
126 [email protected] "<" 126 [email protected] "<"
127 [email protected] 127 [email protected]
128 [email protected] "\'a" 128 [email protected] "\'a"
@@ -242,7 +242,7 @@ [email protected]
242 [email protected] "(" 242 [email protected] "("
243 [email protected] 243 [email protected]
244 [email protected] "for" 244 [email protected] "for"
245 TYP[email protected] 245 GENERIC[email protected]
246 [email protected] "<" 246 [email protected] "<"
247 [email protected] 247 [email protected]
248 [email protected] "\'a" 248 [email protected] "\'a"
diff --git a/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast b/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast
index 254ff546a..8c8bf7b7e 100644
--- a/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast
+++ b/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast
@@ -1,7 +1,7 @@
1[email protected] 1[email protected]
2 [email protected] 2 [email protected]
3 [email protected] "impl" 3 [email protected] "impl"
4 TYP[email protected] 4 GENERIC[email protected]
5 [email protected] "<" 5 [email protected] "<"
6 [email protected] 6 [email protected]
7 [email protected] 7 [email protected]
@@ -19,7 +19,7 @@ [email protected]
19 [email protected] "\n" 19 [email protected] "\n"
20 [email protected] 20 [email protected]
21 [email protected] "impl" 21 [email protected] "impl"
22 TYP[email protected] 22 GENERIC[email protected]
23 [email protected] "<" 23 [email protected] "<"
24 [email protected] 24 [email protected]
25 [email protected] 25 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast
index 53704f640..a8e42e6ea 100644
--- a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast
+++ b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast
@@ -13,7 +13,7 @@ [email protected]
13 [email protected] " " 13 [email protected] " "
14 [email protected] 14 [email protected]
15 [email protected] "for" 15 [email protected] "for"
16 TYP[email protected] 16 GENERIC[email protected]
17 [email protected] "<" 17 [email protected] "<"
18 [email protected] 18 [email protected]
19 [email protected] "\'a" 19 [email protected] "\'a"
diff --git a/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast b/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast
index 19b3540e9..082625c13 100644
--- a/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast
+++ b/crates/ra_syntax/test_data/parser/err/0044_unexpected_for_type.rast
@@ -9,7 +9,7 @@ [email protected]
9 [email protected] " " 9 [email protected] " "
10 [email protected] 10 [email protected]
11 [email protected] "for" 11 [email protected] "for"
12 TYP[email protected] 12 GENERIC[email protected]
13 [email protected] "<" 13 [email protected] "<"
14 [email protected] 14 [email protected]
15 [email protected] "\'a" 15 [email protected] "\'a"
@@ -36,7 +36,7 @@ [email protected]
36 [email protected] " " 36 [email protected] " "
37 [email protected] 37 [email protected]
38 [email protected] "for" 38 [email protected] "for"
39 TYP[email protected] 39 GENERIC[email protected]
40 [email protected] "<" 40 [email protected] "<"
41 [email protected] 41 [email protected]
42 [email protected] "\'a" 42 [email protected] "\'a"
@@ -67,7 +67,7 @@ [email protected]
67 [email protected] " " 67 [email protected] " "
68 [email protected] 68 [email protected]
69 [email protected] "for" 69 [email protected] "for"
70 TYP[email protected] 70 GENERIC[email protected]
71 [email protected] "<" 71 [email protected] "<"
72 [email protected] 72 [email protected]
73 [email protected] "\'a" 73 [email protected] "\'a"
@@ -93,7 +93,7 @@ [email protected]
93 [email protected] " " 93 [email protected] " "
94 [email protected] 94 [email protected]
95 [email protected] "for" 95 [email protected] "for"
96 TYP[email protected] 96 GENERIC[email protected]
97 [email protected] "<" 97 [email protected] "<"
98 [email protected] 98 [email protected]
99 [email protected] "\'a" 99 [email protected] "\'a"
@@ -101,7 +101,7 @@ [email protected]
101 [email protected] " " 101 [email protected] " "
102 [email protected] 102 [email protected]
103 [email protected] "for" 103 [email protected] "for"
104 TYP[email protected] 104 GENERIC[email protected]
105 [email protected] "<" 105 [email protected] "<"
106 [email protected] 106 [email protected]
107 [email protected] "\'b" 107 [email protected] "\'b"
@@ -141,7 +141,7 @@ [email protected]
141 [email protected] " " 141 [email protected] " "
142 [email protected] 142 [email protected]
143 [email protected] "for_for_for" 143 [email protected] "for_for_for"
144 TYP[email protected] 144 GENERIC[email protected]
145 [email protected] "<" 145 [email protected] "<"
146 [email protected] 146 [email protected]
147 [email protected] 147 [email protected]
@@ -156,7 +156,7 @@ [email protected]
156 [email protected] "\n " 156 [email protected] "\n "
157 [email protected] 157 [email protected]
158 [email protected] "for" 158 [email protected] "for"
159 TYP[email protected] 159 GENERIC[email protected]
160 [email protected] "<" 160 [email protected] "<"
161 [email protected] 161 [email protected]
162 [email protected] "\'a" 162 [email protected] "\'a"
@@ -164,7 +164,7 @@ [email protected]
164 [email protected] " " 164 [email protected] " "
165 [email protected] 165 [email protected]
166 [email protected] "for" 166 [email protected] "for"
167 TYP[email protected] 167 GENERIC[email protected]
168 [email protected] "<" 168 [email protected] "<"
169 [email protected] 169 [email protected]
170 [email protected] "\'b" 170 [email protected] "\'b"
@@ -172,7 +172,7 @@ [email protected]
172 [email protected] " " 172 [email protected] " "
173 [email protected] 173 [email protected]
174 [email protected] "for" 174 [email protected] "for"
175 TYP[email protected] 175 GENERIC[email protected]
176 [email protected] "<" 176 [email protected] "<"
177 [email protected] 177 [email protected]
178 [email protected] "\'c" 178 [email protected] "\'c"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
index 9cae1e8cc..b0f2b5888 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "for_trait" 6 [email protected] "for_trait"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -19,7 +19,7 @@ [email protected]
19 [email protected] "\n " 19 [email protected] "\n "
20 [email protected] 20 [email protected]
21 [email protected] "for" 21 [email protected] "for"
22 TYP[email protected] 22 GENERIC[email protected]
23 [email protected] "<" 23 [email protected] "<"
24 [email protected] 24 [email protected]
25 [email protected] "\'a" 25 [email protected] "\'a"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
index 1b56e20d5..8e0252ce7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "foo" 6 [email protected] "foo"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
index 7cb9e1d55..49aca06b0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "S" 6 [email protected] "S"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast
index 884ab2dbf..8f20ccaa3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "T" 6 [email protected] "T"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -57,7 +57,7 @@ [email protected]
57 [email protected] " " 57 [email protected] " "
58 [email protected] 58 [email protected]
59 [email protected] "X" 59 [email protected] "X"
60 TYP[email protected] 60 GENERIC[email protected]
61 [email protected] "<" 61 [email protected] "<"
62 [email protected] 62 [email protected]
63 [email protected] 63 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
index fbf2e7c67..d4235a8b1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "foo" 6 [email protected] "foo"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
index 0123cb108..00cce69e6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "Result" 6 [email protected] "Result"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
index cfa4c05f5..96217a7fd 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "foo" 6 [email protected] "foo"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
index 175ec9844..e7629ac03 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
@@ -9,7 +9,7 @@ [email protected]
9 [email protected] " " 9 [email protected] " "
10 [email protected] 10 [email protected]
11 [email protected] "for" 11 [email protected] "for"
12 TYP[email protected] 12 GENERIC[email protected]
13 [email protected] "<" 13 [email protected] "<"
14 [email protected] 14 [email protected]
15 [email protected] "\'a" 15 [email protected] "\'a"
@@ -39,7 +39,7 @@ [email protected]
39 [email protected] " " 39 [email protected] " "
40 [email protected] 40 [email protected]
41 [email protected] "for" 41 [email protected] "for"
42 TYP[email protected] 42 GENERIC[email protected]
43 [email protected] "<" 43 [email protected] "<"
44 [email protected] 44 [email protected]
45 [email protected] "\'a" 45 [email protected] "\'a"
@@ -84,7 +84,7 @@ [email protected]
84 [email protected] " " 84 [email protected] " "
85 [email protected] 85 [email protected]
86 [email protected] "for" 86 [email protected] "for"
87 TYP[email protected] 87 GENERIC[email protected]
88 [email protected] "<" 88 [email protected] "<"
89 [email protected] 89 [email protected]
90 [email protected] "\'a" 90 [email protected] "\'a"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast b/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast
index cee2bc906..1d24619c3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "S" 6 [email protected] "S"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast b/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
index 01d717d6b..0b1ec5b27 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "Test" 6 [email protected] "Test"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -45,7 +45,7 @@ [email protected]
45 [email protected] " " 45 [email protected] " "
46 [email protected] 46 [email protected]
47 [email protected] "Test" 47 [email protected] "Test"
48 TYP[email protected] 48 GENERIC[email protected]
49 [email protected] "<" 49 [email protected] "<"
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
index f4008cfdc..edac8d5d9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "foo" 6 [email protected] "foo"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
index 1ad03e005..157513565 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "print_all" 6 [email protected] "print_all"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast
index 4b9b8e0ab..6981ef971 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "S" 6 [email protected] "S"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] "const" 10 [email protected] "const"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
index 77e12cad6..07e555d63 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
@@ -1,7 +1,7 @@
1[email protected] 1[email protected]
2 [email protected] 2 [email protected]
3 [email protected] "impl" 3 [email protected] "impl"
4 TYP[email protected] 4 GENERIC[email protected]
5 [email protected] "<" 5 [email protected] "<"
6 [email protected] 6 [email protected]
7 [email protected] "const" 7 [email protected] "const"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast b/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast
index 48d73a4e7..e2a770a37 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "Z" 6 [email protected] "Z"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -36,7 +36,7 @@ [email protected]
36 [email protected] " " 36 [email protected] " "
37 [email protected] 37 [email protected]
38 [email protected] "Z" 38 [email protected] "Z"
39 TYP[email protected] 39 GENERIC[email protected]
40 [email protected] "<" 40 [email protected] "<"
41 [email protected] 41 [email protected]
42 [email protected] 42 [email protected]
@@ -87,7 +87,7 @@ [email protected]
87 [email protected] " " 87 [email protected] " "
88 [email protected] 88 [email protected]
89 [email protected] "Z" 89 [email protected] "Z"
90 TYP[email protected] 90 GENERIC[email protected]
91 [email protected] "<" 91 [email protected] "<"
92 [email protected] 92 [email protected]
93 [email protected] 93 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast b/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast
index 705f7e001..cf801aedd 100644
--- a/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "S" 6 [email protected] "S"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast b/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast
index 451634e3f..3ee208fff 100644
--- a/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "S1" 6 [email protected] "S1"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -17,7 +17,7 @@ [email protected]
17 [email protected] " " 17 [email protected] " "
18 [email protected] 18 [email protected]
19 [email protected] "S2" 19 [email protected] "S2"
20 TYP[email protected] 20 GENERIC[email protected]
21 [email protected] "<" 21 [email protected] "<"
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected]
@@ -39,7 +39,7 @@ [email protected]
39 [email protected] " " 39 [email protected] " "
40 [email protected] 40 [email protected]
41 [email protected] "S3" 41 [email protected] "S3"
42 TYP[email protected] 42 GENERIC[email protected]
43 [email protected] "<" 43 [email protected] "<"
44 [email protected] 44 [email protected]
45 [email protected] 45 [email protected]
@@ -67,7 +67,7 @@ [email protected]
67 [email protected] " " 67 [email protected] " "
68 [email protected] 68 [email protected]
69 [email protected] "S4" 69 [email protected] "S4"
70 TYP[email protected] 70 GENERIC[email protected]
71 [email protected] "<" 71 [email protected] "<"
72 [email protected] ">" 72 [email protected] ">"
73 [email protected] ";" 73 [email protected] ";"
@@ -77,7 +77,7 @@ [email protected]
77 [email protected] " " 77 [email protected] " "
78 [email protected] 78 [email protected]
79 [email protected] "S5" 79 [email protected] "S5"
80 TYP[email protected] 80 GENERIC[email protected]
81 [email protected] "<" 81 [email protected] "<"
82 [email protected] 82 [email protected]
83 [email protected] "\'a" 83 [email protected] "\'a"
@@ -89,7 +89,7 @@ [email protected]
89 [email protected] " " 89 [email protected] " "
90 [email protected] 90 [email protected]
91 [email protected] "S6" 91 [email protected] "S6"
92 TYP[email protected] 92 GENERIC[email protected]
93 [email protected] "<" 93 [email protected] "<"
94 [email protected] 94 [email protected]
95 [email protected] "\'a" 95 [email protected] "\'a"
@@ -102,7 +102,7 @@ [email protected]
102 [email protected] " " 102 [email protected] " "
103 [email protected] 103 [email protected]
104 [email protected] "S7" 104 [email protected] "S7"
105 TYP[email protected] 105 GENERIC[email protected]
106 [email protected] "<" 106 [email protected] "<"
107 [email protected] 107 [email protected]
108 [email protected] "\'a" 108 [email protected] "\'a"
@@ -117,7 +117,7 @@ [email protected]
117 [email protected] " " 117 [email protected] " "
118 [email protected] 118 [email protected]
119 [email protected] "S8" 119 [email protected] "S8"
120 TYP[email protected] 120 GENERIC[email protected]
121 [email protected] "<" 121 [email protected] "<"
122 [email protected] 122 [email protected]
123 [email protected] "\'a" 123 [email protected] "\'a"
@@ -135,7 +135,7 @@ [email protected]
135 [email protected] " " 135 [email protected] " "
136 [email protected] 136 [email protected]
137 [email protected] "S9" 137 [email protected] "S9"
138 TYP[email protected] 138 GENERIC[email protected]
139 [email protected] "<" 139 [email protected] "<"
140 [email protected] 140 [email protected]
141 [email protected] "\'a" 141 [email protected] "\'a"
@@ -154,7 +154,7 @@ [email protected]
154 [email protected] " " 154 [email protected] " "
155 [email protected] 155 [email protected]
156 [email protected] "S10" 156 [email protected] "S10"
157 TYP[email protected] 157 GENERIC[email protected]
158 [email protected] "<" 158 [email protected] "<"
159 [email protected] 159 [email protected]
160 [email protected] "\'a" 160 [email protected] "\'a"
@@ -167,7 +167,7 @@ [email protected]
167 [email protected] " " 167 [email protected] " "
168 [email protected] 168 [email protected]
169 [email protected] "S11" 169 [email protected] "S11"
170 TYP[email protected] 170 GENERIC[email protected]
171 [email protected] "<" 171 [email protected] "<"
172 [email protected] 172 [email protected]
173 [email protected] "\'a" 173 [email protected] "\'a"
@@ -183,7 +183,7 @@ [email protected]
183 [email protected] " " 183 [email protected] " "
184 [email protected] 184 [email protected]
185 [email protected] "S12" 185 [email protected] "S12"
186 TYP[email protected] 186 GENERIC[email protected]
187 [email protected] "<" 187 [email protected] "<"
188 [email protected] 188 [email protected]
189 [email protected] "\'a" 189 [email protected] "\'a"
@@ -207,7 +207,7 @@ [email protected]
207 [email protected] " " 207 [email protected] " "
208 [email protected] 208 [email protected]
209 [email protected] "S13" 209 [email protected] "S13"
210 TYP[email protected] 210 GENERIC[email protected]
211 [email protected] "<" 211 [email protected] "<"
212 [email protected] 212 [email protected]
213 [email protected] 213 [email protected]
@@ -220,7 +220,7 @@ [email protected]
220 [email protected] " " 220 [email protected] " "
221 [email protected] 221 [email protected]
222 [email protected] "S14" 222 [email protected] "S14"
223 TYP[email protected] 223 GENERIC[email protected]
224 [email protected] "<" 224 [email protected] "<"
225 [email protected] 225 [email protected]
226 [email protected] 226 [email protected]
@@ -238,7 +238,7 @@ [email protected]
238 [email protected] " " 238 [email protected] " "
239 [email protected] 239 [email protected]
240 [email protected] "S15" 240 [email protected] "S15"
241 TYP[email protected] 241 GENERIC[email protected]
242 [email protected] "<" 242 [email protected] "<"
243 [email protected] 243 [email protected]
244 [email protected] "\'a" 244 [email protected] "\'a"
diff --git a/crates/ra_syntax/test_data/parser/ok/0019_enums.rast b/crates/ra_syntax/test_data/parser/ok/0019_enums.rast
index f767e9e19..993f28c4d 100644
--- a/crates/ra_syntax/test_data/parser/ok/0019_enums.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0019_enums.rast
@@ -15,7 +15,7 @@ [email protected]
15 [email protected] " " 15 [email protected] " "
16 [email protected] 16 [email protected]
17 [email protected] "E2" 17 [email protected] "E2"
18 TYP[email protected] 18 GENERIC[email protected]
19 [email protected] "<" 19 [email protected] "<"
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast b/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast
index 4fb4baf56..5100e6a48 100644
--- a/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "A" 6 [email protected] "A"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -17,7 +17,7 @@ [email protected]
17 [email protected] " " 17 [email protected] " "
18 [email protected] 18 [email protected]
19 [email protected] "B" 19 [email protected] "B"
20 TYP[email protected] 20 GENERIC[email protected]
21 [email protected] "<" 21 [email protected] "<"
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected]
@@ -32,7 +32,7 @@ [email protected]
32 [email protected] " " 32 [email protected] " "
33 [email protected] 33 [email protected]
34 [email protected] "C" 34 [email protected] "C"
35 TYP[email protected] 35 GENERIC[email protected]
36 [email protected] "<" 36 [email protected] "<"
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected]
@@ -50,7 +50,7 @@ [email protected]
50 [email protected] " " 50 [email protected] " "
51 [email protected] 51 [email protected]
52 [email protected] "D" 52 [email protected] "D"
53 TYP[email protected] 53 GENERIC[email protected]
54 [email protected] "<" 54 [email protected] "<"
55 [email protected] 55 [email protected]
56 [email protected] 56 [email protected]
@@ -71,7 +71,7 @@ [email protected]
71 [email protected] " " 71 [email protected] " "
72 [email protected] 72 [email protected]
73 [email protected] "E" 73 [email protected] "E"
74 TYP[email protected] 74 GENERIC[email protected]
75 [email protected] "<" 75 [email protected] "<"
76 [email protected] 76 [email protected]
77 [email protected] 77 [email protected]
@@ -95,7 +95,7 @@ [email protected]
95 [email protected] " " 95 [email protected] " "
96 [email protected] 96 [email protected]
97 [email protected] "F" 97 [email protected] "F"
98 TYP[email protected] 98 GENERIC[email protected]
99 [email protected] "<" 99 [email protected] "<"
100 [email protected] 100 [email protected]
101 [email protected] 101 [email protected]
@@ -127,7 +127,7 @@ [email protected]
127 [email protected] " " 127 [email protected] " "
128 [email protected] 128 [email protected]
129 [email protected] "G" 129 [email protected] "G"
130 TYP[email protected] 130 GENERIC[email protected]
131 [email protected] "<" 131 [email protected] "<"
132 [email protected] 132 [email protected]
133 [email protected] 133 [email protected]
@@ -158,7 +158,7 @@ [email protected]
158 [email protected] " " 158 [email protected] " "
159 [email protected] 159 [email protected]
160 [email protected] "H" 160 [email protected] "H"
161 TYP[email protected] 161 GENERIC[email protected]
162 [email protected] "<" 162 [email protected] "<"
163 [email protected] 163 [email protected]
164 [email protected] 164 [email protected]
@@ -199,7 +199,7 @@ [email protected]
199 [email protected] " " 199 [email protected] " "
200 [email protected] 200 [email protected]
201 [email protected] "I" 201 [email protected] "I"
202 TYP[email protected] 202 GENERIC[email protected]
203 [email protected] "<" 203 [email protected] "<"
204 [email protected] 204 [email protected]
205 [email protected] 205 [email protected]
@@ -222,7 +222,7 @@ [email protected]
222 [email protected] " " 222 [email protected] " "
223 [email protected] 223 [email protected]
224 [email protected] "K" 224 [email protected] "K"
225 TYP[email protected] 225 GENERIC[email protected]
226 [email protected] "<" 226 [email protected] "<"
227 [email protected] 227 [email protected]
228 [email protected] "\'a" 228 [email protected] "\'a"
diff --git a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast
index 1b2325a2d..10da87c71 100644
--- a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "test_serialization" 6 [email protected] "test_serialization"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -38,7 +38,7 @@ [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] "for" 40 [email protected] "for"
41 TYP[email protected] 41 GENERIC[email protected]
42 [email protected] "<" 42 [email protected] "<"
43 [email protected] 43 [email protected]
44 [email protected] "\'de" 44 [email protected] "\'de"
diff --git a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast
index 2e36b54bc..ea54651b7 100644
--- a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast
@@ -1565,7 +1565,7 @@ [email protected]
1565 [email protected] " " 1565 [email protected] " "
1566 [email protected] 1566 [email protected]
1567 [email protected] "union" 1567 [email protected] "union"
1568 TYP[email protected] 1568 GENERIC[email protected]
1569 [email protected] "<" 1569 [email protected] "<"
1570 [email protected] 1570 [email protected]
1571 [email protected] "\'union" 1571 [email protected] "\'union"
diff --git a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast
index a5f09e364..c4da317b9 100644
--- a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast
@@ -9,7 +9,7 @@ [email protected]
9 [email protected] " " 9 [email protected] " "
10 [email protected] 10 [email protected]
11 [email protected] "foo" 11 [email protected] "foo"
12 TYP[email protected] 12 GENERIC[email protected]
13 [email protected] "<" 13 [email protected] "<"
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
index 9a173b002..8081eefbc 100644
--- a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast
@@ -137,7 +137,7 @@ [email protected]
137 [email protected] " " 137 [email protected] " "
138 [email protected] 138 [email protected]
139 [email protected] "foo" 139 [email protected] "foo"
140 TYP[email protected] 140 GENERIC[email protected]
141 [email protected] "<" 141 [email protected] "<"
142 [email protected] 142 [email protected]
143 [email protected] 143 [email protected]
@@ -341,7 +341,7 @@ [email protected]
341 [email protected] " " 341 [email protected] " "
342 [email protected] 342 [email protected]
343 [email protected] "g3" 343 [email protected] "g3"
344 TYP[email protected] 344 GENERIC[email protected]
345 [email protected] "<" 345 [email protected] "<"
346 [email protected] 346 [email protected]
347 [email protected] "\'a" 347 [email protected] "\'a"
@@ -373,7 +373,7 @@ [email protected]
373 [email protected] " " 373 [email protected] " "
374 [email protected] 374 [email protected]
375 [email protected] "g4" 375 [email protected] "g4"
376 TYP[email protected] 376 GENERIC[email protected]
377 [email protected] "<" 377 [email protected] "<"
378 [email protected] 378 [email protected]
379 [email protected] "\'a" 379 [email protected] "\'a"
@@ -405,7 +405,7 @@ [email protected]
405 [email protected] " " 405 [email protected] " "
406 [email protected] 406 [email protected]
407 [email protected] "g5" 407 [email protected] "g5"
408 TYP[email protected] 408 GENERIC[email protected]
409 [email protected] "<" 409 [email protected] "<"
410 [email protected] 410 [email protected]
411 [email protected] "\'a" 411 [email protected] "\'a"
diff --git a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
index 7996dc121..2c699ffcb 100644
--- a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "f" 6 [email protected] "f"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
diff --git a/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
index e4c2578f6..a368ac1e8 100644
--- a/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
+++ b/crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
@@ -4,7 +4,7 @@ [email protected]
4 [email protected] " " 4 [email protected] " "
5 [email protected] 5 [email protected]
6 [email protected] "for_trait" 6 [email protected] "for_trait"
7 TYP[email protected] 7 GENERIC[email protected]
8 [email protected] "<" 8 [email protected] "<"
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
@@ -19,7 +19,7 @@ [email protected]
19 [email protected] "\n " 19 [email protected] "\n "
20 [email protected] 20 [email protected]
21 [email protected] "for" 21 [email protected] "for"
22 TYP[email protected] 22 GENERIC[email protected]
23 [email protected] "<" 23 [email protected] "<"
24 [email protected] 24 [email protected]
25 [email protected] "\'a" 25 [email protected] "\'a"
@@ -64,7 +64,7 @@ [email protected]
64 [email protected] " " 64 [email protected] " "
65 [email protected] 65 [email protected]
66 [email protected] "for_ref" 66 [email protected] "for_ref"
67 TYP[email protected] 67 GENERIC[email protected]
68 [email protected] "<" 68 [email protected] "<"
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
@@ -79,7 +79,7 @@ [email protected]
79 [email protected] "\n " 79 [email protected] "\n "
80 [email protected] 80 [email protected]
81 [email protected] "for" 81 [email protected] "for"
82 TYP[email protected] 82 GENERIC[email protected]
83 [email protected] "<" 83 [email protected] "<"
84 [email protected] 84 [email protected]
85 [email protected] "\'a" 85 [email protected] "\'a"
@@ -115,7 +115,7 @@ [email protected]
115 [email protected] " " 115 [email protected] " "
116 [email protected] 116 [email protected]
117 [email protected] "for_parens" 117 [email protected] "for_parens"
118 TYP[email protected] 118 GENERIC[email protected]
119 [email protected] "<" 119 [email protected] "<"
120 [email protected] 120 [email protected]
121 [email protected] 121 [email protected]
@@ -130,7 +130,7 @@ [email protected]
130 [email protected] "\n " 130 [email protected] "\n "
131 [email protected] 131 [email protected]
132 [email protected] "for" 132 [email protected] "for"
133 TYP[email protected] 133 GENERIC[email protected]
134 [email protected] "<" 134 [email protected] "<"
135 [email protected] 135 [email protected]
136 [email protected] "\'a" 136 [email protected] "\'a"
@@ -182,7 +182,7 @@ [email protected]
182 [email protected] " " 182 [email protected] " "
183 [email protected] 183 [email protected]
184 [email protected] "for_slice" 184 [email protected] "for_slice"
185 TYP[email protected] 185 GENERIC[email protected]
186 [email protected] "<" 186 [email protected] "<"
187 [email protected] 187 [email protected]
188 [email protected] 188 [email protected]
@@ -197,7 +197,7 @@ [email protected]
197 [email protected] "\n " 197 [email protected] "\n "
198 [email protected] 198 [email protected]
199 [email protected] "for" 199 [email protected] "for"
200 TYP[email protected] 200 GENERIC[email protected]
201 [email protected] "<" 201 [email protected] "<"
202 [email protected] 202 [email protected]
203 [email protected] "\'a" 203 [email protected] "\'a"
@@ -236,7 +236,7 @@ [email protected]
236 [email protected] " " 236 [email protected] " "
237 [email protected] 237 [email protected]
238 [email protected] "for_qpath" 238 [email protected] "for_qpath"
239 TYP[email protected] 239 GENERIC[email protected]
240 [email protected] "<" 240 [email protected] "<"
241 [email protected] 241 [email protected]
242 [email protected] 242 [email protected]
@@ -264,7 +264,7 @@ [email protected]
264 [email protected] "\n " 264 [email protected] "\n "
265 [email protected] 265 [email protected]
266 [email protected] "for" 266 [email protected] "for"
267 TYP[email protected] 267 GENERIC[email protected]
268 [email protected] "<" 268 [email protected] "<"
269 [email protected] 269 [email protected]
270 [email protected] "\'a" 270 [email protected] "\'a"
@@ -318,7 +318,7 @@ [email protected]
318 [email protected] " " 318 [email protected] " "
319 [email protected] 319 [email protected]
320 [email protected] "for_for_fn" 320 [email protected] "for_for_fn"
321 TYP[email protected] 321 GENERIC[email protected]
322 [email protected] "<" 322 [email protected] "<"
323 [email protected] 323 [email protected]
324 [email protected] 324 [email protected]
@@ -333,7 +333,7 @@ [email protected]
333 [email protected] "\n " 333 [email protected] "\n "
334 [email protected] 334 [email protected]
335 [email protected] "for" 335 [email protected] "for"
336 TYP[email protected] 336 GENERIC[email protected]
337 [email protected] "<" 337 [email protected] "<"
338 [email protected] 338 [email protected]
339 [email protected] "\'a" 339 [email protected] "\'a"
@@ -341,7 +341,7 @@ [email protected]
341 [email protected] " " 341 [email protected] " "
342 [email protected] 342 [email protected]
343 [email protected] "for" 343 [email protected] "for"
344 TYP[email protected] 344 GENERIC[email protected]
345 [email protected] "<" 345 [email protected] "<"
346 [email protected] 346 [email protected]
347 [email protected] "\'b" 347 [email protected] "\'b"
diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs
index e66e96d64..b81985851 100644
--- a/xtask/src/ast_src.rs
+++ b/xtask/src/ast_src.rs
@@ -203,7 +203,7 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc {
203 "NAME_REF", 203 "NAME_REF",
204 "LET_STMT", 204 "LET_STMT",
205 "EXPR_STMT", 205 "EXPR_STMT",
206 "TYPE_PARAM_LIST", 206 "GENERIC_PARAM_LIST",
207 "LIFETIME_PARAM", 207 "LIFETIME_PARAM",
208 "TYPE_PARAM", 208 "TYPE_PARAM",
209 "CONST_PARAM", 209 "CONST_PARAM",
diff --git a/xtask/src/codegen/gen_syntax.rs b/xtask/src/codegen/gen_syntax.rs
index 072527208..f79cd972e 100644
--- a/xtask/src/codegen/gen_syntax.rs
+++ b/xtask/src/codegen/gen_syntax.rs
@@ -667,7 +667,7 @@ fn extract_struct_traits(ast: &mut AstSrc) {
667 ("AttrsOwner", &["attrs"]), 667 ("AttrsOwner", &["attrs"]),
668 ("NameOwner", &["name"]), 668 ("NameOwner", &["name"]),
669 ("VisibilityOwner", &["visibility"]), 669 ("VisibilityOwner", &["visibility"]),
670 ("TypeParamsOwner", &["type_param_list", "where_clause"]), 670 ("GenericParamsOwner", &["generic_param_list", "where_clause"]),
671 ("TypeBoundsOwner", &["type_bound_list", "colon_token"]), 671 ("TypeBoundsOwner", &["type_bound_list", "colon_token"]),
672 ("ModuleItemOwner", &["items"]), 672 ("ModuleItemOwner", &["items"]),
673 ("TypeAscriptionOwner", &["ascribed_type"]), 673 ("TypeAscriptionOwner", &["ascribed_type"]),
diff --git a/xtask/src/codegen/rust.ungram b/xtask/src/codegen/rust.ungram
index 760a8dd95..833ffd9e0 100644
--- a/xtask/src/codegen/rust.ungram
+++ b/xtask/src/codegen/rust.ungram
@@ -45,7 +45,7 @@ UseTreeList =
45Fn = 45Fn =
46 Attr* Visibility? 46 Attr* Visibility?
47 'default'? ('async' | 'const')? 'unsafe'? Abi? 47 'default'? ('async' | 'const')? 'unsafe'? Abi?
48 'fn' Name TypeParamList? ParamList RetType? 48 'fn' Name GenericParamList? ParamList RetType?
49 WhereClause? 49 WhereClause?
50 (body:BlockExpr | ';') 50 (body:BlockExpr | ';')
51 51
@@ -73,17 +73,17 @@ RetType =
73 '->' TypeRef 73 '->' TypeRef
74 74
75TypeAlias = 75TypeAlias =
76 Attr* Visibility? 'default'? 'type' Name TypeParamList? (':' TypeBoundList?)? WhereClause? 76 Attr* Visibility? 'default'? 'type' Name GenericParamList? (':' TypeBoundList?)? WhereClause?
77 '=' TypeRef ';' 77 '=' TypeRef ';'
78 78
79StructDef = 79StructDef =
80 Attr* Visibility? 'struct' Name TypeParamList? ( 80 Attr* Visibility? 'struct' Name GenericParamList? (
81 WhereClause? (RecordFieldDefList | ';') 81 WhereClause? (RecordFieldDefList | ';')
82 | TupleFieldDefList WhereClause? ';' 82 | TupleFieldDefList WhereClause? ';'
83 ) 83 )
84 84
85UnionDef = 85UnionDef =
86 Attr* Visibility? 'union' Name TypeParamList? WhereClause? 86 Attr* Visibility? 'union' Name GenericParamList? WhereClause?
87 RecordFieldDefList 87 RecordFieldDefList
88 88
89RecordFieldDefList = 89RecordFieldDefList =
@@ -103,7 +103,7 @@ FieldDefList =
103| TupleFieldDefList 103| TupleFieldDefList
104 104
105EnumDef = 105EnumDef =
106 Attr* Visibility? 'enum' Name TypeParamList? WhereClause? 106 Attr* Visibility? 'enum' Name GenericParamList? WhereClause?
107 variant_list:EnumVariantList 107 variant_list:EnumVariantList
108 108
109EnumVariantList = 109EnumVariantList =
@@ -113,7 +113,7 @@ EnumVariant =
113 Attr* Visibility? Name FieldDefList ('=' Expr)? 113 Attr* Visibility? Name FieldDefList ('=' Expr)?
114 114
115TraitDef = 115TraitDef =
116 Attr* Visibility? 'unsafe'? 'auto'? 'trait' Name TypeParamList 116 Attr* Visibility? 'unsafe'? 'auto'? 'trait' Name GenericParamList
117 (':' TypeBoundList?)? WhereClause 117 (':' TypeBoundList?)? WhereClause
118 AssocItemList 118 AssocItemList
119 119
@@ -129,7 +129,7 @@ StaticDef =
129 '=' body:Expr ';' 129 '=' body:Expr ';'
130 130
131ImplDef = 131ImplDef =
132 Attr* Visibility? 'const'? 'default'? 'unsafe'? 'impl' TypeParamList? '!'? 'for' 132 Attr* Visibility? 'const'? 'default'? 'unsafe'? 'impl' GenericParamList? '!'? 'for'
133 WhereClause? 133 WhereClause?
134 AssocItemList 134 AssocItemList
135 135
@@ -164,7 +164,7 @@ FnPointerType =
164 Abi 'unsafe'? 'fn' ParamList RetType? 164 Abi 'unsafe'? 'fn' ParamList RetType?
165 165
166ForType = 166ForType =
167 'for' TypeParamList TypeRef 167 'for' GenericParamList TypeRef
168 168
169ImplTraitType = 169ImplTraitType =
170 'impl' TypeBoundList 170 'impl' TypeBoundList
@@ -379,7 +379,7 @@ MacroStmts =
379Attr = 379Attr =
380 '#' '!'? '[' Path ('=' input:AttrInput)? ']' 380 '#' '!'? '[' Path ('=' input:AttrInput)? ']'
381 381
382TypeParamList = 382GenericParamList =
383 '<' 383 '<'
384 TypeParam* 384 TypeParam*
385 LifetimeParam* 385 LifetimeParam*
@@ -404,7 +404,7 @@ TypeBoundList =
404 bounds:TypeBound* 404 bounds:TypeBound*
405 405
406WherePred = 406WherePred =
407 ('for' TypeParamList)? ('lifetime' | TypeRef) ':' TypeBoundList 407 ('for' GenericParamList)? ('lifetime' | TypeRef) ':' TypeBoundList
408 408
409WhereClause = 409WhereClause =
410 'where' predicates:WherePred* 410 'where' predicates:WherePred*