Rename TypeParamList -> GenericParamList

This commit is contained in:
Aleksey Kladov 2020-07-30 15:36:21 +02:00
parent eb2f806344
commit 28ef4c375a
53 changed files with 155 additions and 154 deletions

View file

@ -104,7 +104,7 @@ impl FunctionTemplate {
struct FunctionBuilder { struct FunctionBuilder {
target: GeneratedFunctionTarget, target: GeneratedFunctionTarget,
fn_name: ast::Name, fn_name: ast::Name,
type_params: Option<ast::TypeParamList>, type_params: Option<ast::GenericParamList>,
params: ast::ParamList, params: ast::ParamList,
file: FileId, file: FileId,
needs_pub: bool, needs_pub: bool,
@ -200,7 +200,7 @@ fn fn_args(
ctx: &AssistContext, ctx: &AssistContext,
target_module: hir::Module, target_module: hir::Module,
call: &ast::CallExpr, call: &ast::CallExpr,
) -> Option<(Option<ast::TypeParamList>, ast::ParamList)> { ) -> Option<(Option<ast::GenericParamList>, ast::ParamList)> {
let mut arg_names = Vec::new(); let mut arg_names = Vec::new();
let mut arg_types = Vec::new(); let mut arg_types = Vec::new();
for arg in call.arg_list()?.args() { for arg in call.arg_list()?.args() {

View file

@ -1,4 +1,4 @@
use ra_syntax::ast::{self, AstNode, NameOwner, TypeParamsOwner}; use ra_syntax::ast::{self, AstNode, GenericParamsOwner, NameOwner};
use stdx::{format_to, SepBy}; use stdx::{format_to, SepBy};
use crate::{AssistContext, AssistId, AssistKind, Assists}; use crate::{AssistContext, AssistId, AssistKind, Assists};
@ -31,7 +31,7 @@ pub(crate) fn generate_impl(acc: &mut Assists, ctx: &AssistContext) -> Option<()
format!("Generate impl for `{}`", name), format!("Generate impl for `{}`", name),
target, target,
|edit| { |edit| {
let type_params = nominal.type_param_list(); let type_params = nominal.generic_param_list();
let start_offset = nominal.syntax().text_range().end(); let start_offset = nominal.syntax().text_range().end();
let mut buf = String::new(); let mut buf = String::new();
buf.push_str("\n\nimpl"); buf.push_str("\n\nimpl");

View file

@ -1,7 +1,8 @@
use hir::Adt; use hir::Adt;
use ra_syntax::{ use ra_syntax::{
ast::{ ast::{
self, AstNode, NameOwner, StructKind, TypeAscriptionOwner, TypeParamsOwner, VisibilityOwner, self, AstNode, GenericParamsOwner, NameOwner, StructKind, TypeAscriptionOwner,
VisibilityOwner,
}, },
T, T,
}; };
@ -91,7 +92,7 @@ pub(crate) fn generate_new(acc: &mut Assists, ctx: &AssistContext) -> Option<()>
// Generates the surrounding `impl Type { <code> }` including type and lifetime // Generates the surrounding `impl Type { <code> }` including type and lifetime
// parameters // parameters
fn generate_impl_text(strukt: &ast::StructDef, code: &str) -> String { fn generate_impl_text(strukt: &ast::StructDef, code: &str) -> String {
let type_params = strukt.type_param_list(); let type_params = strukt.generic_param_list();
let mut buf = String::with_capacity(code.len()); let mut buf = String::with_capacity(code.len());
buf.push_str("\n\nimpl"); buf.push_str("\n\nimpl");
if let Some(type_params) = &type_params { if let Some(type_params) = &type_params {

View file

@ -1,5 +1,5 @@
use ra_syntax::{ use ra_syntax::{
ast::{self, NameOwner, TypeAscriptionOwner, TypeParamsOwner}, ast::{self, GenericParamsOwner, NameOwner, TypeAscriptionOwner},
AstNode, SyntaxKind, TextRange, TextSize, AstNode, SyntaxKind, TextRange, TextSize,
}; };
use rustc_hash::FxHashSet; use rustc_hash::FxHashSet;
@ -54,7 +54,7 @@ fn generate_fn_def_assist(
lifetime_loc: TextRange, lifetime_loc: TextRange,
) -> Option<()> { ) -> Option<()> {
let param_list: ast::ParamList = fn_def.param_list()?; let param_list: ast::ParamList = fn_def.param_list()?;
let new_lifetime_param = generate_unique_lifetime_param_name(&fn_def.type_param_list())?; let new_lifetime_param = generate_unique_lifetime_param_name(&fn_def.generic_param_list())?;
let end_of_fn_ident = fn_def.name()?.ident_token()?.text_range().end(); let end_of_fn_ident = fn_def.name()?.ident_token()?.text_range().end();
let self_param = let self_param =
// use the self if it's a reference and has no explicit lifetime // use the self if it's a reference and has no explicit lifetime
@ -96,7 +96,7 @@ fn generate_impl_def_assist(
impl_def: &ast::ImplDef, impl_def: &ast::ImplDef,
lifetime_loc: TextRange, lifetime_loc: TextRange,
) -> Option<()> { ) -> Option<()> {
let new_lifetime_param = generate_unique_lifetime_param_name(&impl_def.type_param_list())?; let new_lifetime_param = generate_unique_lifetime_param_name(&impl_def.generic_param_list())?;
let end_of_impl_kw = impl_def.impl_token()?.text_range().end(); let end_of_impl_kw = impl_def.impl_token()?.text_range().end();
acc.add(AssistId(ASSIST_NAME, AssistKind::Refactor), ASSIST_LABEL, lifetime_loc, |builder| { acc.add(AssistId(ASSIST_NAME, AssistKind::Refactor), ASSIST_LABEL, lifetime_loc, |builder| {
add_lifetime_param(impl_def, builder, end_of_impl_kw, new_lifetime_param); add_lifetime_param(impl_def, builder, end_of_impl_kw, new_lifetime_param);
@ -107,7 +107,7 @@ fn generate_impl_def_assist(
/// Given a type parameter list, generate a unique lifetime parameter name /// Given a type parameter list, generate a unique lifetime parameter name
/// which is not in the list /// which is not in the list
fn generate_unique_lifetime_param_name( fn generate_unique_lifetime_param_name(
existing_type_param_list: &Option<ast::TypeParamList>, existing_type_param_list: &Option<ast::GenericParamList>,
) -> Option<char> { ) -> Option<char> {
match existing_type_param_list { match existing_type_param_list {
Some(type_params) => { Some(type_params) => {
@ -123,13 +123,13 @@ fn generate_unique_lifetime_param_name(
/// Add the lifetime param to `builder`. If there are type parameters in `type_params_owner`, add it to the end. Otherwise /// Add the lifetime param to `builder`. If there are type parameters in `type_params_owner`, add it to the end. Otherwise
/// add new type params brackets with the lifetime parameter at `new_type_params_loc`. /// add new type params brackets with the lifetime parameter at `new_type_params_loc`.
fn add_lifetime_param<TypeParamsOwner: ast::TypeParamsOwner>( fn add_lifetime_param<TypeParamsOwner: ast::GenericParamsOwner>(
type_params_owner: &TypeParamsOwner, type_params_owner: &TypeParamsOwner,
builder: &mut AssistBuilder, builder: &mut AssistBuilder,
new_type_params_loc: TextSize, new_type_params_loc: TextSize,
new_lifetime_param: char, new_lifetime_param: char,
) { ) {
match type_params_owner.type_param_list() { match type_params_owner.generic_param_list() {
// add the new lifetime parameter to an existing type param list // add the new lifetime parameter to an existing type param list
Some(type_params) => { Some(type_params) => {
builder.insert( builder.insert(

View file

@ -23,7 +23,7 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
// } // }
// ``` // ```
pub(crate) fn move_bounds_to_where_clause(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { pub(crate) fn move_bounds_to_where_clause(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
let type_param_list = ctx.find_node_at_offset::<ast::TypeParamList>()?; let type_param_list = ctx.find_node_at_offset::<ast::GenericParamList>()?;
let mut type_params = type_param_list.type_params(); let mut type_params = type_param_list.type_params();
if type_params.all(|p| p.type_bound_list().is_none()) { if type_params.all(|p| p.type_bound_list().is_none()) {

View file

@ -12,7 +12,7 @@ use hir_expand::{
use ra_arena::{map::ArenaMap, Arena}; use ra_arena::{map::ArenaMap, Arena};
use ra_db::FileId; use ra_db::FileId;
use ra_prof::profile; use ra_prof::profile;
use ra_syntax::ast::{self, NameOwner, TypeBoundsOwner, TypeParamsOwner}; use ra_syntax::ast::{self, GenericParamsOwner, NameOwner, TypeBoundsOwner};
use crate::{ use crate::{
body::LowerCtx, body::LowerCtx,
@ -205,9 +205,9 @@ impl GenericParams {
&mut self, &mut self,
lower_ctx: &LowerCtx, lower_ctx: &LowerCtx,
sm: &mut SourceMap, sm: &mut SourceMap,
node: &dyn TypeParamsOwner, node: &dyn GenericParamsOwner,
) { ) {
if let Some(params) = node.type_param_list() { if let Some(params) = node.generic_param_list() {
self.fill_params(lower_ctx, sm, params) self.fill_params(lower_ctx, sm, params)
} }
if let Some(where_clause) = node.where_clause() { if let Some(where_clause) = node.where_clause() {
@ -232,7 +232,7 @@ impl GenericParams {
&mut self, &mut self,
lower_ctx: &LowerCtx, lower_ctx: &LowerCtx,
sm: &mut SourceMap, sm: &mut SourceMap,
params: ast::TypeParamList, params: ast::GenericParamList,
) { ) {
for type_param in params.type_params() { for type_param in params.type_params() {
let name = type_param.name().map_or_else(Name::missing, |it| it.as_name()); let name = type_param.name().map_or_else(Name::missing, |it| it.as_name());

View file

@ -568,10 +568,10 @@ impl Ctx {
fn lower_generic_params_and_inner_items( fn lower_generic_params_and_inner_items(
&mut self, &mut self,
owner: GenericsOwner<'_>, owner: GenericsOwner<'_>,
node: &impl ast::TypeParamsOwner, node: &impl ast::GenericParamsOwner,
) -> GenericParamsId { ) -> GenericParamsId {
// Generics are part of item headers and may contain inner items we need to collect. // Generics are part of item headers and may contain inner items we need to collect.
if let Some(params) = node.type_param_list() { if let Some(params) = node.generic_param_list() {
self.collect_inner_items(params.syntax()); self.collect_inner_items(params.syntax());
} }
if let Some(clause) = node.where_clause() { if let Some(clause) = node.where_clause() {
@ -584,7 +584,7 @@ impl Ctx {
fn lower_generic_params( fn lower_generic_params(
&mut self, &mut self,
owner: GenericsOwner<'_>, owner: GenericsOwner<'_>,
node: &impl ast::TypeParamsOwner, node: &impl ast::GenericParamsOwner,
) -> GenericParamsId { ) -> GenericParamsId {
let mut sm = &mut ArenaMap::default(); let mut sm = &mut ArenaMap::default();
let mut generics = GenericParams::default(); let mut generics = GenericParams::default();

View file

@ -4,7 +4,7 @@ use log::debug;
use ra_parser::FragmentKind; use ra_parser::FragmentKind;
use ra_syntax::{ use ra_syntax::{
ast::{self, AstNode, ModuleItemOwner, NameOwner, TypeParamsOwner}, ast::{self, AstNode, GenericParamsOwner, ModuleItemOwner, NameOwner},
match_ast, match_ast,
}; };
@ -72,9 +72,9 @@ fn parse_adt(tt: &tt::Subtree) -> Result<BasicAdtInfo, mbe::ExpandError> {
let node = item.syntax(); let node = item.syntax();
let (name, params) = match_ast! { let (name, params) = match_ast! {
match node { match node {
ast::StructDef(it) => (it.name(), it.type_param_list()), ast::StructDef(it) => (it.name(), it.generic_param_list()),
ast::EnumDef(it) => (it.name(), it.type_param_list()), ast::EnumDef(it) => (it.name(), it.generic_param_list()),
ast::UnionDef(it) => (it.name(), it.type_param_list()), ast::UnionDef(it) => (it.name(), it.generic_param_list()),
_ => { _ => {
debug!("unexpected node is {:?}", node); debug!("unexpected node is {:?}", node);
return Err(mbe::ExpandError::ConversionError) return Err(mbe::ExpandError::ConversionError)

View file

@ -5,7 +5,7 @@ mod navigation_target;
mod short_label; mod short_label;
use ra_syntax::{ use ra_syntax::{
ast::{self, AstNode, AttrsOwner, NameOwner, TypeParamsOwner}, ast::{self, AstNode, AttrsOwner, GenericParamsOwner, NameOwner},
SyntaxKind::{ATTR, COMMENT}, SyntaxKind::{ATTR, COMMENT},
}; };
@ -37,7 +37,7 @@ pub(crate) fn function_declaration(node: &ast::Fn) -> String {
if let Some(name) = node.name() { if let Some(name) = node.name() {
format_to!(buf, "fn {}", name) format_to!(buf, "fn {}", name)
} }
if let Some(type_params) = node.type_param_list() { if let Some(type_params) = node.generic_param_list() {
format_to!(buf, "{}", type_params); format_to!(buf, "{}", type_params);
} }
if let Some(param_list) = node.param_list() { if let Some(param_list) = node.param_list() {

View file

@ -44,7 +44,7 @@ fn try_extend_selection(
RECORD_FIELD_LIST, RECORD_FIELD_LIST,
ENUM_VARIANT_LIST, ENUM_VARIANT_LIST,
USE_TREE_LIST, USE_TREE_LIST,
TYPE_PARAM_LIST, GENERIC_PARAM_LIST,
TYPE_ARG_LIST, TYPE_ARG_LIST,
TYPE_BOUND_LIST, TYPE_BOUND_LIST,
PARAM_LIST, PARAM_LIST,

View file

@ -1,5 +1,5 @@
use ra_syntax::{ use ra_syntax::{
ast::{self, AttrsOwner, NameOwner, TypeAscriptionOwner, TypeParamsOwner}, ast::{self, AttrsOwner, GenericParamsOwner, NameOwner, TypeAscriptionOwner},
match_ast, AstNode, SourceFile, SyntaxKind, SyntaxNode, TextRange, WalkEvent, match_ast, AstNode, SourceFile, SyntaxKind, SyntaxNode, TextRange, WalkEvent,
}; };
@ -113,7 +113,7 @@ fn structure_node(node: &SyntaxNode) -> Option<StructureNode> {
match node { match node {
ast::Fn(it) => { ast::Fn(it) => {
let mut detail = String::from("fn"); let mut detail = String::from("fn");
if let Some(type_param_list) = it.type_param_list() { if let Some(type_param_list) = it.generic_param_list() {
collapse_ws(type_param_list.syntax(), &mut detail); collapse_ws(type_param_list.syntax(), &mut detail);
} }
if let Some(param_list) = it.param_list() { if let Some(param_list) = it.param_list() {

View file

@ -175,7 +175,7 @@ fn get_struct_def_name_for_struct_literal_search(
return name.syntax().ancestors().find_map(ast::StructDef::cast).and_then(|l| l.name()); return name.syntax().ancestors().find_map(ast::StructDef::cast).and_then(|l| l.name());
} }
if sema if sema
.find_node_at_offset_with_descend::<ast::TypeParamList>( .find_node_at_offset_with_descend::<ast::GenericParamList>(
&syntax, &syntax,
left.text_range().start(), left.text_range().start(),
) )

View file

@ -36,7 +36,7 @@ fn type_param_list(p: &mut Parser) {
} }
} }
p.expect(T![>]); p.expect(T![>]);
m.complete(p, TYPE_PARAM_LIST); m.complete(p, GENERIC_PARAM_LIST);
} }
fn lifetime_param(p: &mut Parser, m: Marker) { fn lifetime_param(p: &mut Parser, m: Marker) {

View file

@ -230,7 +230,7 @@ pub enum SyntaxKind {
NAME_REF, NAME_REF,
LET_STMT, LET_STMT,
EXPR_STMT, EXPR_STMT,
TYPE_PARAM_LIST, GENERIC_PARAM_LIST,
LIFETIME_PARAM, LIFETIME_PARAM,
TYPE_PARAM, TYPE_PARAM,
CONST_PARAM, CONST_PARAM,

View file

@ -286,7 +286,7 @@ where
let mut bounds = pred.type_bound_list().unwrap().bounds(); let mut bounds = pred.type_bound_list().unwrap().bounds();
assert!(pred.for_token().is_none()); assert!(pred.for_token().is_none());
assert!(pred.type_param_list().is_none()); assert!(pred.generic_param_list().is_none());
assert_eq!("T", pred.type_ref().unwrap().syntax().text().to_string()); assert_eq!("T", pred.type_ref().unwrap().syntax().text().to_string());
assert_bound("Clone", bounds.next()); assert_bound("Clone", bounds.next());
assert_bound("Copy", bounds.next()); assert_bound("Copy", bounds.next());
@ -325,7 +325,7 @@ where
let mut bounds = pred.type_bound_list().unwrap().bounds(); let mut bounds = pred.type_bound_list().unwrap().bounds();
assert!(pred.for_token().is_some()); assert!(pred.for_token().is_some());
assert_eq!("<'a>", pred.type_param_list().unwrap().syntax().text().to_string()); assert_eq!("<'a>", pred.generic_param_list().unwrap().syntax().text().to_string());
assert_eq!("F", pred.type_ref().unwrap().syntax().text().to_string()); assert_eq!("F", pred.type_ref().unwrap().syntax().text().to_string());
assert_bound("Fn(&'a str)", bounds.next()); assert_bound("Fn(&'a str)", bounds.next());
} }

View file

@ -50,7 +50,7 @@ pub struct EnumDef {
impl ast::AttrsOwner for EnumDef {} impl ast::AttrsOwner for EnumDef {}
impl ast::NameOwner for EnumDef {} impl ast::NameOwner for EnumDef {}
impl ast::VisibilityOwner for EnumDef {} impl ast::VisibilityOwner for EnumDef {}
impl ast::TypeParamsOwner for EnumDef {} impl ast::GenericParamsOwner for EnumDef {}
impl EnumDef { impl EnumDef {
pub fn enum_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![enum]) } pub fn enum_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![enum]) }
pub fn variant_list(&self) -> Option<EnumVariantList> { support::child(&self.syntax) } pub fn variant_list(&self) -> Option<EnumVariantList> { support::child(&self.syntax) }
@ -85,7 +85,7 @@ pub struct Fn {
impl ast::AttrsOwner for Fn {} impl ast::AttrsOwner for Fn {}
impl ast::NameOwner for Fn {} impl ast::NameOwner for Fn {}
impl ast::VisibilityOwner for Fn {} impl ast::VisibilityOwner for Fn {}
impl ast::TypeParamsOwner for Fn {} impl ast::GenericParamsOwner for Fn {}
impl Fn { impl Fn {
pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) }
pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) } pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) }
@ -104,7 +104,7 @@ pub struct ImplDef {
} }
impl ast::AttrsOwner for ImplDef {} impl ast::AttrsOwner for ImplDef {}
impl ast::VisibilityOwner for ImplDef {} impl ast::VisibilityOwner for ImplDef {}
impl ast::TypeParamsOwner for ImplDef {} impl ast::GenericParamsOwner for ImplDef {}
impl ImplDef { impl ImplDef {
pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) } pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) }
pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) }
@ -161,7 +161,7 @@ pub struct StructDef {
impl ast::AttrsOwner for StructDef {} impl ast::AttrsOwner for StructDef {}
impl ast::NameOwner for StructDef {} impl ast::NameOwner for StructDef {}
impl ast::VisibilityOwner for StructDef {} impl ast::VisibilityOwner for StructDef {}
impl ast::TypeParamsOwner for StructDef {} impl ast::GenericParamsOwner for StructDef {}
impl StructDef { impl StructDef {
pub fn struct_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![struct]) } pub fn struct_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![struct]) }
pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![;]) } pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![;]) }
@ -174,7 +174,7 @@ pub struct TraitDef {
impl ast::AttrsOwner for TraitDef {} impl ast::AttrsOwner for TraitDef {}
impl ast::NameOwner for TraitDef {} impl ast::NameOwner for TraitDef {}
impl ast::VisibilityOwner for TraitDef {} impl ast::VisibilityOwner for TraitDef {}
impl ast::TypeParamsOwner for TraitDef {} impl ast::GenericParamsOwner for TraitDef {}
impl ast::TypeBoundsOwner for TraitDef {} impl ast::TypeBoundsOwner for TraitDef {}
impl TraitDef { impl TraitDef {
pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) }
@ -189,7 +189,7 @@ pub struct TypeAlias {
impl ast::AttrsOwner for TypeAlias {} impl ast::AttrsOwner for TypeAlias {}
impl ast::NameOwner for TypeAlias {} impl ast::NameOwner for TypeAlias {}
impl ast::VisibilityOwner for TypeAlias {} impl ast::VisibilityOwner for TypeAlias {}
impl ast::TypeParamsOwner for TypeAlias {} impl ast::GenericParamsOwner for TypeAlias {}
impl ast::TypeBoundsOwner for TypeAlias {} impl ast::TypeBoundsOwner for TypeAlias {}
impl TypeAlias { impl TypeAlias {
pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) }
@ -205,7 +205,7 @@ pub struct UnionDef {
impl ast::AttrsOwner for UnionDef {} impl ast::AttrsOwner for UnionDef {}
impl ast::NameOwner for UnionDef {} impl ast::NameOwner for UnionDef {}
impl ast::VisibilityOwner for UnionDef {} impl ast::VisibilityOwner for UnionDef {}
impl ast::TypeParamsOwner for UnionDef {} impl ast::GenericParamsOwner for UnionDef {}
impl UnionDef { impl UnionDef {
pub fn union_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![union]) } pub fn union_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![union]) }
pub fn record_field_def_list(&self) -> Option<RecordFieldDefList> { pub fn record_field_def_list(&self) -> Option<RecordFieldDefList> {
@ -307,10 +307,10 @@ impl Abi {
pub fn extern_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![extern]) } pub fn extern_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![extern]) }
} }
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct TypeParamList { pub struct GenericParamList {
pub(crate) syntax: SyntaxNode, pub(crate) syntax: SyntaxNode,
} }
impl TypeParamList { impl GenericParamList {
pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) }
pub fn type_params(&self) -> AstChildren<TypeParam> { support::children(&self.syntax) } pub fn type_params(&self) -> AstChildren<TypeParam> { support::children(&self.syntax) }
pub fn lifetime_params(&self) -> AstChildren<LifetimeParam> { support::children(&self.syntax) } pub fn lifetime_params(&self) -> AstChildren<LifetimeParam> { support::children(&self.syntax) }
@ -557,7 +557,7 @@ pub struct ForType {
} }
impl ForType { impl ForType {
pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) } pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) }
pub fn type_param_list(&self) -> Option<TypeParamList> { support::child(&self.syntax) } pub fn generic_param_list(&self) -> Option<GenericParamList> { support::child(&self.syntax) }
pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) } pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) }
} }
#[derive(Debug, Clone, PartialEq, Eq, Hash)] #[derive(Debug, Clone, PartialEq, Eq, Hash)]
@ -1172,7 +1172,7 @@ pub struct WherePred {
impl ast::TypeBoundsOwner for WherePred {} impl ast::TypeBoundsOwner for WherePred {}
impl WherePred { impl WherePred {
pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) } pub fn for_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![for]) }
pub fn type_param_list(&self) -> Option<TypeParamList> { support::child(&self.syntax) } pub fn generic_param_list(&self) -> Option<GenericParamList> { support::child(&self.syntax) }
pub fn lifetime_token(&self) -> Option<SyntaxToken> { pub fn lifetime_token(&self) -> Option<SyntaxToken> {
support::token(&self.syntax, T![lifetime]) support::token(&self.syntax, T![lifetime])
} }
@ -1397,8 +1397,8 @@ pub enum AdtDef {
UnionDef(UnionDef), UnionDef(UnionDef),
} }
impl ast::AttrsOwner for AdtDef {} impl ast::AttrsOwner for AdtDef {}
impl ast::GenericParamsOwner for AdtDef {}
impl ast::NameOwner for AdtDef {} impl ast::NameOwner for AdtDef {}
impl ast::TypeParamsOwner for AdtDef {}
impl ast::VisibilityOwner for AdtDef {} impl ast::VisibilityOwner for AdtDef {}
impl AstNode for SourceFile { impl AstNode for SourceFile {
fn can_cast(kind: SyntaxKind) -> bool { kind == SOURCE_FILE } fn can_cast(kind: SyntaxKind) -> bool { kind == SOURCE_FILE }
@ -1675,8 +1675,8 @@ impl AstNode for Abi {
} }
fn syntax(&self) -> &SyntaxNode { &self.syntax } fn syntax(&self) -> &SyntaxNode { &self.syntax }
} }
impl AstNode for TypeParamList { impl AstNode for GenericParamList {
fn can_cast(kind: SyntaxKind) -> bool { kind == TYPE_PARAM_LIST } fn can_cast(kind: SyntaxKind) -> bool { kind == GENERIC_PARAM_LIST }
fn cast(syntax: SyntaxNode) -> Option<Self> { fn cast(syntax: SyntaxNode) -> Option<Self> {
if Self::can_cast(syntax.kind()) { if Self::can_cast(syntax.kind()) {
Some(Self { syntax }) Some(Self { syntax })
@ -3583,7 +3583,7 @@ impl std::fmt::Display for Abi {
std::fmt::Display::fmt(self.syntax(), f) std::fmt::Display::fmt(self.syntax(), f)
} }
} }
impl std::fmt::Display for TypeParamList { impl std::fmt::Display for GenericParamList {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
std::fmt::Display::fmt(self.syntax(), f) std::fmt::Display::fmt(self.syntax(), f)
} }

View file

@ -291,7 +291,7 @@ pub fn visibility_pub_crate() -> ast::Visibility {
pub fn fn_def( pub fn fn_def(
visibility: Option<ast::Visibility>, visibility: Option<ast::Visibility>,
fn_name: ast::Name, fn_name: ast::Name,
type_params: Option<ast::TypeParamList>, type_params: Option<ast::GenericParamList>,
params: ast::ParamList, params: ast::ParamList,
body: ast::BlockExpr, body: ast::BlockExpr,
) -> ast::Fn { ) -> ast::Fn {

View file

@ -49,8 +49,8 @@ pub trait ModuleItemOwner: AstNode {
} }
} }
pub trait TypeParamsOwner: AstNode { pub trait GenericParamsOwner: AstNode {
fn type_param_list(&self) -> Option<ast::TypeParamList> { fn generic_param_list(&self) -> Option<ast::GenericParamList> {
support::child(self.syntax()) support::child(self.syntax())
} }

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..43
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..8 NAME@7..8
IDENT@7..8 "S" IDENT@7..8 "S"
TYPE_PARAM_LIST@8..11 GENERIC_PARAM_LIST@8..11
L_ANGLE@8..9 "<" L_ANGLE@8..9 "<"
ERROR@9..11 ERROR@9..11
INT_NUMBER@9..11 "90" INT_NUMBER@9..11 "90"

View file

@ -10,7 +10,7 @@ SOURCE_FILE@0..389
WHITESPACE@13..14 WHITESPACE@13..14
NAME@14..21 NAME@14..21
IDENT@14..21 "process" IDENT@14..21 "process"
TYPE_PARAM_LIST@21..38 GENERIC_PARAM_LIST@21..38
L_ANGLE@21..22 L_ANGLE@21..22
LIFETIME_PARAM@22..24 LIFETIME_PARAM@22..24
LIFETIME@22..24 "'a" LIFETIME@22..24 "'a"

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..23
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..6 NAME@3..6
IDENT@3..6 "foo" IDENT@3..6 "foo"
TYPE_PARAM_LIST@6..9 GENERIC_PARAM_LIST@6..9
L_ANGLE@6..7 "<" L_ANGLE@6..7 "<"
TYPE_PARAM@7..8 TYPE_PARAM@7..8
NAME@7..8 NAME@7..8

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..240
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..4 NAME@3..4
IDENT@3..4 "f" IDENT@3..4 "f"
TYPE_PARAM_LIST@4..48 GENERIC_PARAM_LIST@4..48
L_ANGLE@4..5 "<" L_ANGLE@4..5 "<"
TYPE_PARAM@5..47 TYPE_PARAM@5..47
NAME@5..6 NAME@5..6
@ -39,7 +39,7 @@ SOURCE_FILE@0..240
L_PAREN@28..29 "(" L_PAREN@28..29 "("
FOR_TYPE@29..46 FOR_TYPE@29..46
FOR_KW@29..32 "for" FOR_KW@29..32 "for"
TYPE_PARAM_LIST@32..36 GENERIC_PARAM_LIST@32..36
L_ANGLE@32..33 "<" L_ANGLE@32..33 "<"
LIFETIME_PARAM@33..35 LIFETIME_PARAM@33..35
LIFETIME@33..35 "\'a" LIFETIME@33..35 "\'a"
@ -122,7 +122,7 @@ SOURCE_FILE@0..240
L_PAREN@102..103 "(" L_PAREN@102..103 "("
FOR_TYPE@103..120 FOR_TYPE@103..120
FOR_KW@103..106 "for" FOR_KW@103..106 "for"
TYPE_PARAM_LIST@106..110 GENERIC_PARAM_LIST@106..110
L_ANGLE@106..107 "<" L_ANGLE@106..107 "<"
LIFETIME_PARAM@107..109 LIFETIME_PARAM@107..109
LIFETIME@107..109 "\'a" LIFETIME@107..109 "\'a"
@ -242,7 +242,7 @@ SOURCE_FILE@0..240
L_PAREN@196..197 "(" L_PAREN@196..197 "("
FOR_TYPE@197..214 FOR_TYPE@197..214
FOR_KW@197..200 "for" FOR_KW@197..200 "for"
TYPE_PARAM_LIST@200..204 GENERIC_PARAM_LIST@200..204
L_ANGLE@200..201 "<" L_ANGLE@200..201 "<"
LIFETIME_PARAM@201..203 LIFETIME_PARAM@201..203
LIFETIME@201..203 "\'a" LIFETIME@201..203 "\'a"

View file

@ -1,7 +1,7 @@
SOURCE_FILE@0..38 SOURCE_FILE@0..38
IMPL_DEF@0..14 IMPL_DEF@0..14
IMPL_KW@0..4 "impl" IMPL_KW@0..4 "impl"
TYPE_PARAM_LIST@4..14 GENERIC_PARAM_LIST@4..14
L_ANGLE@4..5 "<" L_ANGLE@4..5 "<"
TYPE_PARAM@5..13 TYPE_PARAM@5..13
NAME@5..6 NAME@5..6
@ -19,7 +19,7 @@ SOURCE_FILE@0..38
WHITESPACE@14..15 "\n" WHITESPACE@14..15 "\n"
IMPL_DEF@15..37 IMPL_DEF@15..37
IMPL_KW@15..19 "impl" IMPL_KW@15..19 "impl"
TYPE_PARAM_LIST@19..22 GENERIC_PARAM_LIST@19..22
L_ANGLE@19..20 "<" L_ANGLE@19..20 "<"
TYPE_PARAM@20..21 TYPE_PARAM@20..21
NAME@20..21 NAME@20..21

View file

@ -13,7 +13,7 @@ SOURCE_FILE@0..30
WHITESPACE@18..19 " " WHITESPACE@18..19 " "
WHERE_PRED@19..26 WHERE_PRED@19..26
FOR_KW@19..22 "for" FOR_KW@19..22 "for"
TYPE_PARAM_LIST@22..26 GENERIC_PARAM_LIST@22..26
L_ANGLE@22..23 "<" L_ANGLE@22..23 "<"
LIFETIME_PARAM@23..25 LIFETIME_PARAM@23..25
LIFETIME@23..25 "\'a" LIFETIME@23..25 "\'a"

View file

@ -9,7 +9,7 @@ SOURCE_FILE@0..239
WHITESPACE@13..14 " " WHITESPACE@13..14 " "
FOR_TYPE@14..29 FOR_TYPE@14..29
FOR_KW@14..17 "for" FOR_KW@14..17 "for"
TYPE_PARAM_LIST@17..21 GENERIC_PARAM_LIST@17..21
L_ANGLE@17..18 "<" L_ANGLE@17..18 "<"
LIFETIME_PARAM@18..20 LIFETIME_PARAM@18..20
LIFETIME@18..20 "\'a" LIFETIME@18..20 "\'a"
@ -36,7 +36,7 @@ SOURCE_FILE@0..239
WHITESPACE@44..45 " " WHITESPACE@44..45 " "
FOR_TYPE@45..63 FOR_TYPE@45..63
FOR_KW@45..48 "for" FOR_KW@45..48 "for"
TYPE_PARAM_LIST@48..52 GENERIC_PARAM_LIST@48..52
L_ANGLE@48..49 "<" L_ANGLE@48..49 "<"
LIFETIME_PARAM@49..51 LIFETIME_PARAM@49..51
LIFETIME@49..51 "\'a" LIFETIME@49..51 "\'a"
@ -67,7 +67,7 @@ SOURCE_FILE@0..239
WHITESPACE@80..81 " " WHITESPACE@80..81 " "
FOR_TYPE@81..94 FOR_TYPE@81..94
FOR_KW@81..84 "for" FOR_KW@81..84 "for"
TYPE_PARAM_LIST@84..88 GENERIC_PARAM_LIST@84..88
L_ANGLE@84..85 "<" L_ANGLE@84..85 "<"
LIFETIME_PARAM@85..87 LIFETIME_PARAM@85..87
LIFETIME@85..87 "\'a" LIFETIME@85..87 "\'a"
@ -93,7 +93,7 @@ SOURCE_FILE@0..239
WHITESPACE@111..112 " " WHITESPACE@111..112 " "
FOR_TYPE@112..148 FOR_TYPE@112..148
FOR_KW@112..115 "for" FOR_KW@112..115 "for"
TYPE_PARAM_LIST@115..119 GENERIC_PARAM_LIST@115..119
L_ANGLE@115..116 "<" L_ANGLE@115..116 "<"
LIFETIME_PARAM@116..118 LIFETIME_PARAM@116..118
LIFETIME@116..118 "\'a" LIFETIME@116..118 "\'a"
@ -101,7 +101,7 @@ SOURCE_FILE@0..239
WHITESPACE@119..120 " " WHITESPACE@119..120 " "
FOR_TYPE@120..148 FOR_TYPE@120..148
FOR_KW@120..123 "for" FOR_KW@120..123 "for"
TYPE_PARAM_LIST@123..127 GENERIC_PARAM_LIST@123..127
L_ANGLE@123..124 "<" L_ANGLE@123..124 "<"
LIFETIME_PARAM@124..126 LIFETIME_PARAM@124..126
LIFETIME@124..126 "\'b" LIFETIME@124..126 "\'b"
@ -141,7 +141,7 @@ SOURCE_FILE@0..239
WHITESPACE@152..153 " " WHITESPACE@152..153 " "
NAME@153..164 NAME@153..164
IDENT@153..164 "for_for_for" IDENT@153..164 "for_for_for"
TYPE_PARAM_LIST@164..167 GENERIC_PARAM_LIST@164..167
L_ANGLE@164..165 "<" L_ANGLE@164..165 "<"
TYPE_PARAM@165..166 TYPE_PARAM@165..166
NAME@165..166 NAME@165..166
@ -156,7 +156,7 @@ SOURCE_FILE@0..239
WHITESPACE@175..180 "\n " WHITESPACE@175..180 "\n "
WHERE_PRED@180..233 WHERE_PRED@180..233
FOR_KW@180..183 "for" FOR_KW@180..183 "for"
TYPE_PARAM_LIST@183..187 GENERIC_PARAM_LIST@183..187
L_ANGLE@183..184 "<" L_ANGLE@183..184 "<"
LIFETIME_PARAM@184..186 LIFETIME_PARAM@184..186
LIFETIME@184..186 "\'a" LIFETIME@184..186 "\'a"
@ -164,7 +164,7 @@ SOURCE_FILE@0..239
WHITESPACE@187..188 " " WHITESPACE@187..188 " "
FOR_TYPE@188..227 FOR_TYPE@188..227
FOR_KW@188..191 "for" FOR_KW@188..191 "for"
TYPE_PARAM_LIST@191..195 GENERIC_PARAM_LIST@191..195
L_ANGLE@191..192 "<" L_ANGLE@191..192 "<"
LIFETIME_PARAM@192..194 LIFETIME_PARAM@192..194
LIFETIME@192..194 "\'b" LIFETIME@192..194 "\'b"
@ -172,7 +172,7 @@ SOURCE_FILE@0..239
WHITESPACE@195..196 " " WHITESPACE@195..196 " "
FOR_TYPE@196..227 FOR_TYPE@196..227
FOR_KW@196..199 "for" FOR_KW@196..199 "for"
TYPE_PARAM_LIST@199..203 GENERIC_PARAM_LIST@199..203
L_ANGLE@199..200 "<" L_ANGLE@199..200 "<"
LIFETIME_PARAM@200..202 LIFETIME_PARAM@200..202
LIFETIME@200..202 "\'c" LIFETIME@200..202 "\'c"

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..54
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..12 NAME@3..12
IDENT@3..12 "for_trait" IDENT@3..12 "for_trait"
TYPE_PARAM_LIST@12..15 GENERIC_PARAM_LIST@12..15
L_ANGLE@12..13 "<" L_ANGLE@12..13 "<"
TYPE_PARAM@13..14 TYPE_PARAM@13..14
NAME@13..14 NAME@13..14
@ -19,7 +19,7 @@ SOURCE_FILE@0..54
WHITESPACE@23..27 "\n " WHITESPACE@23..27 "\n "
WHERE_PRED@27..49 WHERE_PRED@27..49
FOR_KW@27..30 "for" FOR_KW@27..30 "for"
TYPE_PARAM_LIST@30..34 GENERIC_PARAM_LIST@30..34
L_ANGLE@30..31 "<" L_ANGLE@30..31 "<"
LIFETIME_PARAM@31..33 LIFETIME_PARAM@31..33
LIFETIME@31..33 "\'a" LIFETIME@31..33 "\'a"

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..28
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..6 NAME@3..6
IDENT@3..6 "foo" IDENT@3..6 "foo"
TYPE_PARAM_LIST@6..23 GENERIC_PARAM_LIST@6..23
L_ANGLE@6..7 "<" L_ANGLE@6..7 "<"
TYPE_PARAM@7..22 TYPE_PARAM@7..22
NAME@7..8 NAME@7..8

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..35
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..8 NAME@7..8
IDENT@7..8 "S" IDENT@7..8 "S"
TYPE_PARAM_LIST@8..33 GENERIC_PARAM_LIST@8..33
L_ANGLE@8..9 "<" L_ANGLE@8..9 "<"
TYPE_PARAM@9..32 TYPE_PARAM@9..32
NAME@9..10 NAME@9..10

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..101
WHITESPACE@5..6 " " WHITESPACE@5..6 " "
NAME@6..7 NAME@6..7
IDENT@6..7 "T" IDENT@6..7 "T"
TYPE_PARAM_LIST@7..10 GENERIC_PARAM_LIST@7..10
L_ANGLE@7..8 "<" L_ANGLE@7..8 "<"
TYPE_PARAM@8..9 TYPE_PARAM@8..9
NAME@8..9 NAME@8..9
@ -57,7 +57,7 @@ SOURCE_FILE@0..101
WHITESPACE@47..48 " " WHITESPACE@47..48 " "
NAME@48..49 NAME@48..49
IDENT@48..49 "X" IDENT@48..49 "X"
TYPE_PARAM_LIST@49..69 GENERIC_PARAM_LIST@49..69
L_ANGLE@49..50 "<" L_ANGLE@49..50 "<"
TYPE_PARAM@50..68 TYPE_PARAM@50..68
NAME@50..51 NAME@50..51

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..35
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..6 NAME@3..6
IDENT@3..6 "foo" IDENT@3..6 "foo"
TYPE_PARAM_LIST@6..30 GENERIC_PARAM_LIST@6..30
L_ANGLE@6..7 "<" L_ANGLE@6..7 "<"
TYPE_PARAM@7..29 TYPE_PARAM@7..29
NAME@7..8 NAME@7..8

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..21
WHITESPACE@4..5 " " WHITESPACE@4..5 " "
NAME@5..11 NAME@5..11
IDENT@5..11 "Result" IDENT@5..11 "Result"
TYPE_PARAM_LIST@11..14 GENERIC_PARAM_LIST@11..14
L_ANGLE@11..12 "<" L_ANGLE@11..12 "<"
TYPE_PARAM@12..13 TYPE_PARAM@12..13
NAME@12..13 NAME@12..13

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..29
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..6 NAME@3..6
IDENT@3..6 "foo" IDENT@3..6 "foo"
TYPE_PARAM_LIST@6..9 GENERIC_PARAM_LIST@6..9
L_ANGLE@6..7 "<" L_ANGLE@6..7 "<"
TYPE_PARAM@7..8 TYPE_PARAM@7..8
NAME@7..8 NAME@7..8

View file

@ -9,7 +9,7 @@ SOURCE_FILE@0..121
WHITESPACE@8..9 " " WHITESPACE@8..9 " "
FOR_TYPE@9..27 FOR_TYPE@9..27
FOR_KW@9..12 "for" FOR_KW@9..12 "for"
TYPE_PARAM_LIST@12..16 GENERIC_PARAM_LIST@12..16
L_ANGLE@12..13 "<" L_ANGLE@12..13 "<"
LIFETIME_PARAM@13..15 LIFETIME_PARAM@13..15
LIFETIME@13..15 "\'a" LIFETIME@13..15 "\'a"
@ -39,7 +39,7 @@ SOURCE_FILE@0..121
WHITESPACE@37..38 " " WHITESPACE@37..38 " "
FOR_TYPE@38..80 FOR_TYPE@38..80
FOR_KW@38..41 "for" FOR_KW@38..41 "for"
TYPE_PARAM_LIST@41..45 GENERIC_PARAM_LIST@41..45
L_ANGLE@41..42 "<" L_ANGLE@41..42 "<"
LIFETIME_PARAM@42..44 LIFETIME_PARAM@42..44
LIFETIME@42..44 "\'a" LIFETIME@42..44 "\'a"
@ -84,7 +84,7 @@ SOURCE_FILE@0..121
WHITESPACE@92..93 " " WHITESPACE@92..93 " "
FOR_TYPE@93..119 FOR_TYPE@93..119
FOR_KW@93..96 "for" FOR_KW@93..96 "for"
TYPE_PARAM_LIST@96..100 GENERIC_PARAM_LIST@96..100
L_ANGLE@96..97 "<" L_ANGLE@96..97 "<"
LIFETIME_PARAM@97..99 LIFETIME_PARAM@97..99
LIFETIME@97..99 "\'a" LIFETIME@97..99 "\'a"

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..19
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..8 NAME@7..8
IDENT@7..8 "S" IDENT@7..8 "S"
TYPE_PARAM_LIST@8..17 GENERIC_PARAM_LIST@8..17
L_ANGLE@8..9 "<" L_ANGLE@8..9 "<"
TYPE_PARAM@9..16 TYPE_PARAM@9..16
NAME@9..10 NAME@9..10

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..53
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..11 NAME@7..11
IDENT@7..11 "Test" IDENT@7..11 "Test"
TYPE_PARAM_LIST@11..14 GENERIC_PARAM_LIST@11..14
L_ANGLE@11..12 "<" L_ANGLE@11..12 "<"
TYPE_PARAM@12..13 TYPE_PARAM@12..13
NAME@12..13 NAME@12..13
@ -45,7 +45,7 @@ SOURCE_FILE@0..53
WHITESPACE@40..41 " " WHITESPACE@40..41 " "
NAME@41..45 NAME@41..45
IDENT@41..45 "Test" IDENT@41..45 "Test"
TYPE_PARAM_LIST@45..48 GENERIC_PARAM_LIST@45..48
L_ANGLE@45..46 "<" L_ANGLE@45..46 "<"
TYPE_PARAM@46..47 TYPE_PARAM@46..47
NAME@46..47 NAME@46..47

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..64
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..6 NAME@3..6
IDENT@3..6 "foo" IDENT@3..6 "foo"
TYPE_PARAM_LIST@6..49 GENERIC_PARAM_LIST@6..49
L_ANGLE@6..7 "<" L_ANGLE@6..7 "<"
LIFETIME_PARAM@7..29 LIFETIME_PARAM@7..29
ATTR@7..26 ATTR@7..26

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..59
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..12 NAME@3..12
IDENT@3..12 "print_all" IDENT@3..12 "print_all"
TYPE_PARAM_LIST@12..40 GENERIC_PARAM_LIST@12..40
L_ANGLE@12..13 "<" L_ANGLE@12..13 "<"
TYPE_PARAM@13..39 TYPE_PARAM@13..39
NAME@13..14 NAME@13..14

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..24
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..8 NAME@7..8
IDENT@7..8 "S" IDENT@7..8 "S"
TYPE_PARAM_LIST@8..22 GENERIC_PARAM_LIST@8..22
L_ANGLE@8..9 "<" L_ANGLE@8..9 "<"
CONST_PARAM@9..21 CONST_PARAM@9..21
CONST_KW@9..14 "const" CONST_KW@9..14 "const"

View file

@ -1,7 +1,7 @@
SOURCE_FILE@0..29 SOURCE_FILE@0..29
IMPL_DEF@0..28 IMPL_DEF@0..28
IMPL_KW@0..4 "impl" IMPL_KW@0..4 "impl"
TYPE_PARAM_LIST@4..18 GENERIC_PARAM_LIST@4..18
L_ANGLE@4..5 "<" L_ANGLE@4..5 "<"
CONST_PARAM@5..17 CONST_PARAM@5..17
CONST_KW@5..10 "const" CONST_KW@5..10 "const"

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..83
WHITESPACE@5..6 " " WHITESPACE@5..6 " "
NAME@6..7 NAME@6..7
IDENT@6..7 "Z" IDENT@6..7 "Z"
TYPE_PARAM_LIST@7..10 GENERIC_PARAM_LIST@7..10
L_ANGLE@7..8 "<" L_ANGLE@7..8 "<"
TYPE_PARAM@8..9 TYPE_PARAM@8..9
NAME@8..9 NAME@8..9
@ -36,7 +36,7 @@ SOURCE_FILE@0..83
WHITESPACE@24..25 " " WHITESPACE@24..25 " "
NAME@25..26 NAME@25..26
IDENT@25..26 "Z" IDENT@25..26 "Z"
TYPE_PARAM_LIST@26..29 GENERIC_PARAM_LIST@26..29
L_ANGLE@26..27 "<" L_ANGLE@26..27 "<"
TYPE_PARAM@27..28 TYPE_PARAM@27..28
NAME@27..28 NAME@27..28
@ -87,7 +87,7 @@ SOURCE_FILE@0..83
WHITESPACE@57..58 " " WHITESPACE@57..58 " "
NAME@58..59 NAME@58..59
IDENT@58..59 "Z" IDENT@58..59 "Z"
TYPE_PARAM_LIST@59..62 GENERIC_PARAM_LIST@59..62
L_ANGLE@59..60 "<" L_ANGLE@59..60 "<"
TYPE_PARAM@60..61 TYPE_PARAM@60..61
NAME@60..61 NAME@60..61

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..32
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..8 NAME@7..8
IDENT@7..8 "S" IDENT@7..8 "S"
TYPE_PARAM_LIST@8..17 GENERIC_PARAM_LIST@8..17
L_ANGLE@8..9 "<" L_ANGLE@8..9 "<"
TYPE_PARAM@9..16 TYPE_PARAM@9..16
NAME@9..10 NAME@9..10

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..290
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..9 NAME@7..9
IDENT@7..9 "S1" IDENT@7..9 "S1"
TYPE_PARAM_LIST@9..12 GENERIC_PARAM_LIST@9..12
L_ANGLE@9..10 "<" L_ANGLE@9..10 "<"
TYPE_PARAM@10..11 TYPE_PARAM@10..11
NAME@10..11 NAME@10..11
@ -17,7 +17,7 @@ SOURCE_FILE@0..290
WHITESPACE@20..21 " " WHITESPACE@20..21 " "
NAME@21..23 NAME@21..23
IDENT@21..23 "S2" IDENT@21..23 "S2"
TYPE_PARAM_LIST@23..26 GENERIC_PARAM_LIST@23..26
L_ANGLE@23..24 "<" L_ANGLE@23..24 "<"
TYPE_PARAM@24..25 TYPE_PARAM@24..25
NAME@24..25 NAME@24..25
@ -39,7 +39,7 @@ SOURCE_FILE@0..290
WHITESPACE@39..40 " " WHITESPACE@39..40 " "
NAME@40..42 NAME@40..42
IDENT@40..42 "S3" IDENT@40..42 "S3"
TYPE_PARAM_LIST@42..45 GENERIC_PARAM_LIST@42..45
L_ANGLE@42..43 "<" L_ANGLE@42..43 "<"
TYPE_PARAM@43..44 TYPE_PARAM@43..44
NAME@43..44 NAME@43..44
@ -67,7 +67,7 @@ SOURCE_FILE@0..290
WHITESPACE@64..65 " " WHITESPACE@64..65 " "
NAME@65..67 NAME@65..67
IDENT@65..67 "S4" IDENT@65..67 "S4"
TYPE_PARAM_LIST@67..69 GENERIC_PARAM_LIST@67..69
L_ANGLE@67..68 "<" L_ANGLE@67..68 "<"
R_ANGLE@68..69 ">" R_ANGLE@68..69 ">"
SEMICOLON@69..70 ";" SEMICOLON@69..70 ";"
@ -77,7 +77,7 @@ SOURCE_FILE@0..290
WHITESPACE@77..78 " " WHITESPACE@77..78 " "
NAME@78..80 NAME@78..80
IDENT@78..80 "S5" IDENT@78..80 "S5"
TYPE_PARAM_LIST@80..84 GENERIC_PARAM_LIST@80..84
L_ANGLE@80..81 "<" L_ANGLE@80..81 "<"
LIFETIME_PARAM@81..83 LIFETIME_PARAM@81..83
LIFETIME@81..83 "\'a" LIFETIME@81..83 "\'a"
@ -89,7 +89,7 @@ SOURCE_FILE@0..290
WHITESPACE@92..93 " " WHITESPACE@92..93 " "
NAME@93..95 NAME@93..95
IDENT@93..95 "S6" IDENT@93..95 "S6"
TYPE_PARAM_LIST@95..100 GENERIC_PARAM_LIST@95..100
L_ANGLE@95..96 "<" L_ANGLE@95..96 "<"
LIFETIME_PARAM@96..99 LIFETIME_PARAM@96..99
LIFETIME@96..98 "\'a" LIFETIME@96..98 "\'a"
@ -102,7 +102,7 @@ SOURCE_FILE@0..290
WHITESPACE@108..109 " " WHITESPACE@108..109 " "
NAME@109..111 NAME@109..111
IDENT@109..111 "S7" IDENT@109..111 "S7"
TYPE_PARAM_LIST@111..119 GENERIC_PARAM_LIST@111..119
L_ANGLE@111..112 "<" L_ANGLE@111..112 "<"
LIFETIME_PARAM@112..118 LIFETIME_PARAM@112..118
LIFETIME@112..114 "\'a" LIFETIME@112..114 "\'a"
@ -117,7 +117,7 @@ SOURCE_FILE@0..290
WHITESPACE@127..128 " " WHITESPACE@127..128 " "
NAME@128..130 NAME@128..130
IDENT@128..130 "S8" IDENT@128..130 "S8"
TYPE_PARAM_LIST@130..141 GENERIC_PARAM_LIST@130..141
L_ANGLE@130..131 "<" L_ANGLE@130..131 "<"
LIFETIME_PARAM@131..139 LIFETIME_PARAM@131..139
LIFETIME@131..133 "\'a" LIFETIME@131..133 "\'a"
@ -135,7 +135,7 @@ SOURCE_FILE@0..290
WHITESPACE@149..150 " " WHITESPACE@149..150 " "
NAME@150..152 NAME@150..152
IDENT@150..152 "S9" IDENT@150..152 "S9"
TYPE_PARAM_LIST@152..165 GENERIC_PARAM_LIST@152..165
L_ANGLE@152..153 "<" L_ANGLE@152..153 "<"
LIFETIME_PARAM@153..164 LIFETIME_PARAM@153..164
LIFETIME@153..155 "\'a" LIFETIME@153..155 "\'a"
@ -154,7 +154,7 @@ SOURCE_FILE@0..290
WHITESPACE@173..174 " " WHITESPACE@173..174 " "
NAME@174..177 NAME@174..177
IDENT@174..177 "S10" IDENT@174..177 "S10"
TYPE_PARAM_LIST@177..182 GENERIC_PARAM_LIST@177..182
L_ANGLE@177..178 "<" L_ANGLE@177..178 "<"
LIFETIME_PARAM@178..180 LIFETIME_PARAM@178..180
LIFETIME@178..180 "\'a" LIFETIME@178..180 "\'a"
@ -167,7 +167,7 @@ SOURCE_FILE@0..290
WHITESPACE@190..191 " " WHITESPACE@190..191 " "
NAME@191..194 NAME@191..194
IDENT@191..194 "S11" IDENT@191..194 "S11"
TYPE_PARAM_LIST@194..202 GENERIC_PARAM_LIST@194..202
L_ANGLE@194..195 "<" L_ANGLE@194..195 "<"
LIFETIME_PARAM@195..197 LIFETIME_PARAM@195..197
LIFETIME@195..197 "\'a" LIFETIME@195..197 "\'a"
@ -183,7 +183,7 @@ SOURCE_FILE@0..290
WHITESPACE@210..211 " " WHITESPACE@210..211 " "
NAME@211..214 NAME@211..214
IDENT@211..214 "S12" IDENT@211..214 "S12"
TYPE_PARAM_LIST@214..232 GENERIC_PARAM_LIST@214..232
L_ANGLE@214..215 "<" L_ANGLE@214..215 "<"
LIFETIME_PARAM@215..222 LIFETIME_PARAM@215..222
LIFETIME@215..217 "\'a" LIFETIME@215..217 "\'a"
@ -207,7 +207,7 @@ SOURCE_FILE@0..290
WHITESPACE@241..242 " " WHITESPACE@241..242 " "
NAME@242..245 NAME@242..245
IDENT@242..245 "S13" IDENT@242..245 "S13"
TYPE_PARAM_LIST@245..248 GENERIC_PARAM_LIST@245..248
L_ANGLE@245..246 "<" L_ANGLE@245..246 "<"
TYPE_PARAM@246..247 TYPE_PARAM@246..247
NAME@246..247 NAME@246..247
@ -220,7 +220,7 @@ SOURCE_FILE@0..290
WHITESPACE@256..257 " " WHITESPACE@256..257 " "
NAME@257..260 NAME@257..260
IDENT@257..260 "S14" IDENT@257..260 "S14"
TYPE_PARAM_LIST@260..266 GENERIC_PARAM_LIST@260..266
L_ANGLE@260..261 "<" L_ANGLE@260..261 "<"
TYPE_PARAM@261..262 TYPE_PARAM@261..262
NAME@261..262 NAME@261..262
@ -238,7 +238,7 @@ SOURCE_FILE@0..290
WHITESPACE@274..275 " " WHITESPACE@274..275 " "
NAME@275..278 NAME@275..278
IDENT@275..278 "S15" IDENT@275..278 "S15"
TYPE_PARAM_LIST@278..288 GENERIC_PARAM_LIST@278..288
L_ANGLE@278..279 "<" L_ANGLE@278..279 "<"
LIFETIME_PARAM@279..281 LIFETIME_PARAM@279..281
LIFETIME@279..281 "\'a" LIFETIME@279..281 "\'a"

View file

@ -15,7 +15,7 @@ SOURCE_FILE@0..182
WHITESPACE@17..18 " " WHITESPACE@17..18 " "
NAME@18..20 NAME@18..20
IDENT@18..20 "E2" IDENT@18..20 "E2"
TYPE_PARAM_LIST@20..23 GENERIC_PARAM_LIST@20..23
L_ANGLE@20..21 "<" L_ANGLE@20..21 "<"
TYPE_PARAM@21..22 TYPE_PARAM@21..22
NAME@21..22 NAME@21..22

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..250
WHITESPACE@6..7 " " WHITESPACE@6..7 " "
NAME@7..8 NAME@7..8
IDENT@7..8 "A" IDENT@7..8 "A"
TYPE_PARAM_LIST@8..11 GENERIC_PARAM_LIST@8..11
L_ANGLE@8..9 "<" L_ANGLE@8..9 "<"
TYPE_PARAM@9..10 TYPE_PARAM@9..10
NAME@9..10 NAME@9..10
@ -17,7 +17,7 @@ SOURCE_FILE@0..250
WHITESPACE@19..20 " " WHITESPACE@19..20 " "
NAME@20..21 NAME@20..21
IDENT@20..21 "B" IDENT@20..21 "B"
TYPE_PARAM_LIST@21..25 GENERIC_PARAM_LIST@21..25
L_ANGLE@21..22 "<" L_ANGLE@21..22 "<"
TYPE_PARAM@22..24 TYPE_PARAM@22..24
NAME@22..23 NAME@22..23
@ -32,7 +32,7 @@ SOURCE_FILE@0..250
WHITESPACE@33..34 " " WHITESPACE@33..34 " "
NAME@34..35 NAME@34..35
IDENT@34..35 "C" IDENT@34..35 "C"
TYPE_PARAM_LIST@35..42 GENERIC_PARAM_LIST@35..42
L_ANGLE@35..36 "<" L_ANGLE@35..36 "<"
TYPE_PARAM@36..41 TYPE_PARAM@36..41
NAME@36..37 NAME@36..37
@ -50,7 +50,7 @@ SOURCE_FILE@0..250
WHITESPACE@50..51 " " WHITESPACE@50..51 " "
NAME@51..52 NAME@51..52
IDENT@51..52 "D" IDENT@51..52 "D"
TYPE_PARAM_LIST@52..62 GENERIC_PARAM_LIST@52..62
L_ANGLE@52..53 "<" L_ANGLE@52..53 "<"
TYPE_PARAM@53..60 TYPE_PARAM@53..60
NAME@53..54 NAME@53..54
@ -71,7 +71,7 @@ SOURCE_FILE@0..250
WHITESPACE@70..71 " " WHITESPACE@70..71 " "
NAME@71..72 NAME@71..72
IDENT@71..72 "E" IDENT@71..72 "E"
TYPE_PARAM_LIST@72..85 GENERIC_PARAM_LIST@72..85
L_ANGLE@72..73 "<" L_ANGLE@72..73 "<"
TYPE_PARAM@73..83 TYPE_PARAM@73..83
NAME@73..74 NAME@73..74
@ -95,7 +95,7 @@ SOURCE_FILE@0..250
WHITESPACE@93..94 " " WHITESPACE@93..94 " "
NAME@94..95 NAME@94..95
IDENT@94..95 "F" IDENT@94..95 "F"
TYPE_PARAM_LIST@95..115 GENERIC_PARAM_LIST@95..115
L_ANGLE@95..96 "<" L_ANGLE@95..96 "<"
TYPE_PARAM@96..114 TYPE_PARAM@96..114
NAME@96..97 NAME@96..97
@ -127,7 +127,7 @@ SOURCE_FILE@0..250
WHITESPACE@123..124 " " WHITESPACE@123..124 " "
NAME@124..125 NAME@124..125
IDENT@124..125 "G" IDENT@124..125 "G"
TYPE_PARAM_LIST@125..142 GENERIC_PARAM_LIST@125..142
L_ANGLE@125..126 "<" L_ANGLE@125..126 "<"
TYPE_PARAM@126..141 TYPE_PARAM@126..141
NAME@126..127 NAME@126..127
@ -158,7 +158,7 @@ SOURCE_FILE@0..250
WHITESPACE@150..151 " " WHITESPACE@150..151 " "
NAME@151..152 NAME@151..152
IDENT@151..152 "H" IDENT@151..152 "H"
TYPE_PARAM_LIST@152..179 GENERIC_PARAM_LIST@152..179
L_ANGLE@152..153 "<" L_ANGLE@152..153 "<"
TYPE_PARAM@153..178 TYPE_PARAM@153..178
NAME@153..154 NAME@153..154
@ -199,7 +199,7 @@ SOURCE_FILE@0..250
WHITESPACE@187..188 " " WHITESPACE@187..188 " "
NAME@188..189 NAME@188..189
IDENT@188..189 "I" IDENT@188..189 "I"
TYPE_PARAM_LIST@189..198 GENERIC_PARAM_LIST@189..198
L_ANGLE@189..190 "<" L_ANGLE@189..190 "<"
TYPE_PARAM@190..192 TYPE_PARAM@190..192
NAME@190..191 NAME@190..191
@ -222,7 +222,7 @@ SOURCE_FILE@0..250
WHITESPACE@206..207 " " WHITESPACE@206..207 " "
NAME@207..208 NAME@207..208
IDENT@207..208 "K" IDENT@207..208 "K"
TYPE_PARAM_LIST@208..249 GENERIC_PARAM_LIST@208..249
L_ANGLE@208..209 "<" L_ANGLE@208..209 "<"
LIFETIME_PARAM@209..215 LIFETIME_PARAM@209..215
LIFETIME@209..211 "\'a" LIFETIME@209..211 "\'a"

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..116
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..21 NAME@3..21
IDENT@3..21 "test_serialization" IDENT@3..21 "test_serialization"
TYPE_PARAM_LIST@21..26 GENERIC_PARAM_LIST@21..26
L_ANGLE@21..22 "<" L_ANGLE@21..22 "<"
TYPE_PARAM@22..25 TYPE_PARAM@22..25
NAME@22..25 NAME@22..25
@ -38,7 +38,7 @@ SOURCE_FILE@0..116
TYPE_BOUND@56..81 TYPE_BOUND@56..81
FOR_TYPE@56..81 FOR_TYPE@56..81
FOR_KW@56..59 "for" FOR_KW@56..59 "for"
TYPE_PARAM_LIST@59..64 GENERIC_PARAM_LIST@59..64
L_ANGLE@59..60 "<" L_ANGLE@59..60 "<"
LIFETIME_PARAM@60..63 LIFETIME_PARAM@60..63
LIFETIME@60..63 "\'de" LIFETIME@60..63 "\'de"

View file

@ -1565,7 +1565,7 @@ SOURCE_FILE@0..3813
WHITESPACE@2856..2857 " " WHITESPACE@2856..2857 " "
NAME@2857..2862 NAME@2857..2862
IDENT@2857..2862 "union" IDENT@2857..2862 "union"
TYPE_PARAM_LIST@2862..2870 GENERIC_PARAM_LIST@2862..2870
L_ANGLE@2862..2863 "<" L_ANGLE@2862..2863 "<"
LIFETIME_PARAM@2863..2869 LIFETIME_PARAM@2863..2869
LIFETIME@2863..2869 "\'union" LIFETIME@2863..2869 "\'union"

View file

@ -9,7 +9,7 @@ SOURCE_FILE@0..157
WHITESPACE@68..69 " " WHITESPACE@68..69 " "
NAME@69..72 NAME@69..72
IDENT@69..72 "foo" IDENT@69..72 "foo"
TYPE_PARAM_LIST@72..85 GENERIC_PARAM_LIST@72..85
L_ANGLE@72..73 "<" L_ANGLE@72..73 "<"
TYPE_PARAM@73..84 TYPE_PARAM@73..84
NAME@73..74 NAME@73..74

View file

@ -137,7 +137,7 @@ SOURCE_FILE@0..519
WHITESPACE@132..133 " " WHITESPACE@132..133 " "
NAME@133..136 NAME@133..136
IDENT@133..136 "foo" IDENT@133..136 "foo"
TYPE_PARAM_LIST@136..168 GENERIC_PARAM_LIST@136..168
L_ANGLE@136..137 "<" L_ANGLE@136..137 "<"
TYPE_PARAM@137..167 TYPE_PARAM@137..167
NAME@137..138 NAME@137..138
@ -341,7 +341,7 @@ SOURCE_FILE@0..519
WHITESPACE@342..343 " " WHITESPACE@342..343 " "
NAME@343..345 NAME@343..345
IDENT@343..345 "g3" IDENT@343..345 "g3"
TYPE_PARAM_LIST@345..349 GENERIC_PARAM_LIST@345..349
L_ANGLE@345..346 "<" L_ANGLE@345..346 "<"
LIFETIME_PARAM@346..348 LIFETIME_PARAM@346..348
LIFETIME@346..348 "\'a" LIFETIME@346..348 "\'a"
@ -373,7 +373,7 @@ SOURCE_FILE@0..519
WHITESPACE@379..380 " " WHITESPACE@379..380 " "
NAME@380..382 NAME@380..382
IDENT@380..382 "g4" IDENT@380..382 "g4"
TYPE_PARAM_LIST@382..386 GENERIC_PARAM_LIST@382..386
L_ANGLE@382..383 "<" L_ANGLE@382..383 "<"
LIFETIME_PARAM@383..385 LIFETIME_PARAM@383..385
LIFETIME@383..385 "\'a" LIFETIME@383..385 "\'a"
@ -405,7 +405,7 @@ SOURCE_FILE@0..519
WHITESPACE@415..416 " " WHITESPACE@415..416 " "
NAME@416..418 NAME@416..418
IDENT@416..418 "g5" IDENT@416..418 "g5"
TYPE_PARAM_LIST@418..422 GENERIC_PARAM_LIST@418..422
L_ANGLE@418..419 "<" L_ANGLE@418..419 "<"
LIFETIME_PARAM@419..421 LIFETIME_PARAM@419..421
LIFETIME@419..421 "\'a" LIFETIME@419..421 "\'a"

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..40
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..4 NAME@3..4
IDENT@3..4 "f" IDENT@3..4 "f"
TYPE_PARAM_LIST@4..7 GENERIC_PARAM_LIST@4..7
L_ANGLE@4..5 "<" L_ANGLE@4..5 "<"
TYPE_PARAM@5..6 TYPE_PARAM@5..6
NAME@5..6 NAME@5..6

View file

@ -4,7 +4,7 @@ SOURCE_FILE@0..374
WHITESPACE@2..3 " " WHITESPACE@2..3 " "
NAME@3..12 NAME@3..12
IDENT@3..12 "for_trait" IDENT@3..12 "for_trait"
TYPE_PARAM_LIST@12..15 GENERIC_PARAM_LIST@12..15
L_ANGLE@12..13 "<" L_ANGLE@12..13 "<"
TYPE_PARAM@13..14 TYPE_PARAM@13..14
NAME@13..14 NAME@13..14
@ -19,7 +19,7 @@ SOURCE_FILE@0..374
WHITESPACE@23..28 "\n " WHITESPACE@23..28 "\n "
WHERE_PRED@28..50 WHERE_PRED@28..50
FOR_KW@28..31 "for" FOR_KW@28..31 "for"
TYPE_PARAM_LIST@31..35 GENERIC_PARAM_LIST@31..35
L_ANGLE@31..32 "<" L_ANGLE@31..32 "<"
LIFETIME_PARAM@32..34 LIFETIME_PARAM@32..34
LIFETIME@32..34 "\'a" LIFETIME@32..34 "\'a"
@ -64,7 +64,7 @@ SOURCE_FILE@0..374
WHITESPACE@58..59 " " WHITESPACE@58..59 " "
NAME@59..66 NAME@59..66
IDENT@59..66 "for_ref" IDENT@59..66 "for_ref"
TYPE_PARAM_LIST@66..69 GENERIC_PARAM_LIST@66..69
L_ANGLE@66..67 "<" L_ANGLE@66..67 "<"
TYPE_PARAM@67..68 TYPE_PARAM@67..68
NAME@67..68 NAME@67..68
@ -79,7 +79,7 @@ SOURCE_FILE@0..374
WHITESPACE@77..82 "\n " WHITESPACE@77..82 "\n "
WHERE_PRED@82..102 WHERE_PRED@82..102
FOR_KW@82..85 "for" FOR_KW@82..85 "for"
TYPE_PARAM_LIST@85..89 GENERIC_PARAM_LIST@85..89
L_ANGLE@85..86 "<" L_ANGLE@85..86 "<"
LIFETIME_PARAM@86..88 LIFETIME_PARAM@86..88
LIFETIME@86..88 "\'a" LIFETIME@86..88 "\'a"
@ -115,7 +115,7 @@ SOURCE_FILE@0..374
WHITESPACE@110..111 " " WHITESPACE@110..111 " "
NAME@111..121 NAME@111..121
IDENT@111..121 "for_parens" IDENT@111..121 "for_parens"
TYPE_PARAM_LIST@121..124 GENERIC_PARAM_LIST@121..124
L_ANGLE@121..122 "<" L_ANGLE@121..122 "<"
TYPE_PARAM@122..123 TYPE_PARAM@122..123
NAME@122..123 NAME@122..123
@ -130,7 +130,7 @@ SOURCE_FILE@0..374
WHITESPACE@132..137 "\n " WHITESPACE@132..137 "\n "
WHERE_PRED@137..165 WHERE_PRED@137..165
FOR_KW@137..140 "for" FOR_KW@137..140 "for"
TYPE_PARAM_LIST@140..144 GENERIC_PARAM_LIST@140..144
L_ANGLE@140..141 "<" L_ANGLE@140..141 "<"
LIFETIME_PARAM@141..143 LIFETIME_PARAM@141..143
LIFETIME@141..143 "\'a" LIFETIME@141..143 "\'a"
@ -182,7 +182,7 @@ SOURCE_FILE@0..374
WHITESPACE@173..174 " " WHITESPACE@173..174 " "
NAME@174..183 NAME@174..183
IDENT@174..183 "for_slice" IDENT@174..183 "for_slice"
TYPE_PARAM_LIST@183..186 GENERIC_PARAM_LIST@183..186
L_ANGLE@183..184 "<" L_ANGLE@183..184 "<"
TYPE_PARAM@184..185 TYPE_PARAM@184..185
NAME@184..185 NAME@184..185
@ -197,7 +197,7 @@ SOURCE_FILE@0..374
WHITESPACE@194..199 "\n " WHITESPACE@194..199 "\n "
WHERE_PRED@199..218 WHERE_PRED@199..218
FOR_KW@199..202 "for" FOR_KW@199..202 "for"
TYPE_PARAM_LIST@202..206 GENERIC_PARAM_LIST@202..206
L_ANGLE@202..203 "<" L_ANGLE@202..203 "<"
LIFETIME_PARAM@203..205 LIFETIME_PARAM@203..205
LIFETIME@203..205 "\'a" LIFETIME@203..205 "\'a"
@ -236,7 +236,7 @@ SOURCE_FILE@0..374
WHITESPACE@226..227 " " WHITESPACE@226..227 " "
NAME@227..236 NAME@227..236
IDENT@227..236 "for_qpath" IDENT@227..236 "for_qpath"
TYPE_PARAM_LIST@236..239 GENERIC_PARAM_LIST@236..239
L_ANGLE@236..237 "<" L_ANGLE@236..237 "<"
TYPE_PARAM@237..238 TYPE_PARAM@237..238
NAME@237..238 NAME@237..238
@ -264,7 +264,7 @@ SOURCE_FILE@0..374
WHITESPACE@253..258 "\n " WHITESPACE@253..258 "\n "
WHERE_PRED@258..295 WHERE_PRED@258..295
FOR_KW@258..261 "for" FOR_KW@258..261 "for"
TYPE_PARAM_LIST@261..265 GENERIC_PARAM_LIST@261..265
L_ANGLE@261..262 "<" L_ANGLE@261..262 "<"
LIFETIME_PARAM@262..264 LIFETIME_PARAM@262..264
LIFETIME@262..264 "\'a" LIFETIME@262..264 "\'a"
@ -318,7 +318,7 @@ SOURCE_FILE@0..374
WHITESPACE@303..304 " " WHITESPACE@303..304 " "
NAME@304..314 NAME@304..314
IDENT@304..314 "for_for_fn" IDENT@304..314 "for_for_fn"
TYPE_PARAM_LIST@314..317 GENERIC_PARAM_LIST@314..317
L_ANGLE@314..315 "<" L_ANGLE@314..315 "<"
TYPE_PARAM@315..316 TYPE_PARAM@315..316
NAME@315..316 NAME@315..316
@ -333,7 +333,7 @@ SOURCE_FILE@0..374
WHITESPACE@325..330 "\n " WHITESPACE@325..330 "\n "
WHERE_PRED@330..368 WHERE_PRED@330..368
FOR_KW@330..333 "for" FOR_KW@330..333 "for"
TYPE_PARAM_LIST@333..337 GENERIC_PARAM_LIST@333..337
L_ANGLE@333..334 "<" L_ANGLE@333..334 "<"
LIFETIME_PARAM@334..336 LIFETIME_PARAM@334..336
LIFETIME@334..336 "\'a" LIFETIME@334..336 "\'a"
@ -341,7 +341,7 @@ SOURCE_FILE@0..374
WHITESPACE@337..338 " " WHITESPACE@337..338 " "
FOR_TYPE@338..362 FOR_TYPE@338..362
FOR_KW@338..341 "for" FOR_KW@338..341 "for"
TYPE_PARAM_LIST@341..345 GENERIC_PARAM_LIST@341..345
L_ANGLE@341..342 "<" L_ANGLE@341..342 "<"
LIFETIME_PARAM@342..344 LIFETIME_PARAM@342..344
LIFETIME@342..344 "\'b" LIFETIME@342..344 "\'b"

View file

@ -203,7 +203,7 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc {
"NAME_REF", "NAME_REF",
"LET_STMT", "LET_STMT",
"EXPR_STMT", "EXPR_STMT",
"TYPE_PARAM_LIST", "GENERIC_PARAM_LIST",
"LIFETIME_PARAM", "LIFETIME_PARAM",
"TYPE_PARAM", "TYPE_PARAM",
"CONST_PARAM", "CONST_PARAM",

View file

@ -667,7 +667,7 @@ fn extract_struct_traits(ast: &mut AstSrc) {
("AttrsOwner", &["attrs"]), ("AttrsOwner", &["attrs"]),
("NameOwner", &["name"]), ("NameOwner", &["name"]),
("VisibilityOwner", &["visibility"]), ("VisibilityOwner", &["visibility"]),
("TypeParamsOwner", &["type_param_list", "where_clause"]), ("GenericParamsOwner", &["generic_param_list", "where_clause"]),
("TypeBoundsOwner", &["type_bound_list", "colon_token"]), ("TypeBoundsOwner", &["type_bound_list", "colon_token"]),
("ModuleItemOwner", &["items"]), ("ModuleItemOwner", &["items"]),
("TypeAscriptionOwner", &["ascribed_type"]), ("TypeAscriptionOwner", &["ascribed_type"]),

View file

@ -45,7 +45,7 @@ UseTreeList =
Fn = Fn =
Attr* Visibility? Attr* Visibility?
'default'? ('async' | 'const')? 'unsafe'? Abi? 'default'? ('async' | 'const')? 'unsafe'? Abi?
'fn' Name TypeParamList? ParamList RetType? 'fn' Name GenericParamList? ParamList RetType?
WhereClause? WhereClause?
(body:BlockExpr | ';') (body:BlockExpr | ';')
@ -73,17 +73,17 @@ RetType =
'->' TypeRef '->' TypeRef
TypeAlias = TypeAlias =
Attr* Visibility? 'default'? 'type' Name TypeParamList? (':' TypeBoundList?)? WhereClause? Attr* Visibility? 'default'? 'type' Name GenericParamList? (':' TypeBoundList?)? WhereClause?
'=' TypeRef ';' '=' TypeRef ';'
StructDef = StructDef =
Attr* Visibility? 'struct' Name TypeParamList? ( Attr* Visibility? 'struct' Name GenericParamList? (
WhereClause? (RecordFieldDefList | ';') WhereClause? (RecordFieldDefList | ';')
| TupleFieldDefList WhereClause? ';' | TupleFieldDefList WhereClause? ';'
) )
UnionDef = UnionDef =
Attr* Visibility? 'union' Name TypeParamList? WhereClause? Attr* Visibility? 'union' Name GenericParamList? WhereClause?
RecordFieldDefList RecordFieldDefList
RecordFieldDefList = RecordFieldDefList =
@ -103,7 +103,7 @@ FieldDefList =
| TupleFieldDefList | TupleFieldDefList
EnumDef = EnumDef =
Attr* Visibility? 'enum' Name TypeParamList? WhereClause? Attr* Visibility? 'enum' Name GenericParamList? WhereClause?
variant_list:EnumVariantList variant_list:EnumVariantList
EnumVariantList = EnumVariantList =
@ -113,7 +113,7 @@ EnumVariant =
Attr* Visibility? Name FieldDefList ('=' Expr)? Attr* Visibility? Name FieldDefList ('=' Expr)?
TraitDef = TraitDef =
Attr* Visibility? 'unsafe'? 'auto'? 'trait' Name TypeParamList Attr* Visibility? 'unsafe'? 'auto'? 'trait' Name GenericParamList
(':' TypeBoundList?)? WhereClause (':' TypeBoundList?)? WhereClause
AssocItemList AssocItemList
@ -129,7 +129,7 @@ StaticDef =
'=' body:Expr ';' '=' body:Expr ';'
ImplDef = ImplDef =
Attr* Visibility? 'const'? 'default'? 'unsafe'? 'impl' TypeParamList? '!'? 'for' Attr* Visibility? 'const'? 'default'? 'unsafe'? 'impl' GenericParamList? '!'? 'for'
WhereClause? WhereClause?
AssocItemList AssocItemList
@ -164,7 +164,7 @@ FnPointerType =
Abi 'unsafe'? 'fn' ParamList RetType? Abi 'unsafe'? 'fn' ParamList RetType?
ForType = ForType =
'for' TypeParamList TypeRef 'for' GenericParamList TypeRef
ImplTraitType = ImplTraitType =
'impl' TypeBoundList 'impl' TypeBoundList
@ -379,7 +379,7 @@ MacroStmts =
Attr = Attr =
'#' '!'? '[' Path ('=' input:AttrInput)? ']' '#' '!'? '[' Path ('=' input:AttrInput)? ']'
TypeParamList = GenericParamList =
'<' '<'
TypeParam* TypeParam*
LifetimeParam* LifetimeParam*
@ -404,7 +404,7 @@ TypeBoundList =
bounds:TypeBound* bounds:TypeBound*
WherePred = WherePred =
('for' TypeParamList)? ('lifetime' | TypeRef) ':' TypeBoundList ('for' GenericParamList)? ('lifetime' | TypeRef) ':' TypeBoundList
WhereClause = WhereClause =
'where' predicates:WherePred* 'where' predicates:WherePred*