From a6e45c6c69bf258118940941c12d057deb79e60c Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 31 Jul 2020 13:22:47 +0200 Subject: Reame PlaceholderType -> InferType --- .../ra_assists/src/handlers/add_explicit_type.rs | 2 +- crates/ra_hir_def/src/type_ref.rs | 2 +- crates/ra_parser/src/grammar/types.rs | 2 +- crates/ra_parser/src/syntax_kind/generated.rs | 2 +- crates/ra_syntax/src/ast/generated/nodes.rs | 22 +++++++++++----------- .../parser/inline/ok/0023_placeholder_type.rast | 2 +- .../inline/ok/0164_type_path_in_pattern.rast | 2 +- .../test_data/parser/ok/0035_weird_exprs.rast | 4 ++-- xtask/src/ast_src.rs | 2 +- xtask/src/codegen/rust.ungram | 16 ++++++++-------- 10 files changed, 28 insertions(+), 28 deletions(-) diff --git a/crates/ra_assists/src/handlers/add_explicit_type.rs b/crates/ra_assists/src/handlers/add_explicit_type.rs index e69f0a89b..d8b0af0f5 100644 --- a/crates/ra_assists/src/handlers/add_explicit_type.rs +++ b/crates/ra_assists/src/handlers/add_explicit_type.rs @@ -46,7 +46,7 @@ pub(crate) fn add_explicit_type(acc: &mut Assists, ctx: &AssistContext) -> Optio // and it has no placeholders let ascribed_ty = let_stmt.ty(); if let Some(ty) = &ascribed_ty { - if ty.syntax().descendants().find_map(ast::PlaceholderType::cast).is_none() { + if ty.syntax().descendants().find_map(ast::InferType::cast).is_none() { return None; } } diff --git a/crates/ra_hir_def/src/type_ref.rs b/crates/ra_hir_def/src/type_ref.rs index 9386b91cb..524c033b8 100644 --- a/crates/ra_hir_def/src/type_ref.rs +++ b/crates/ra_hir_def/src/type_ref.rs @@ -111,7 +111,7 @@ impl TypeRef { let mutability = Mutability::from_mutable(inner.mut_token().is_some()); TypeRef::Reference(Box::new(inner_ty), mutability) } - ast::Type::PlaceholderType(_inner) => TypeRef::Placeholder, + ast::Type::InferType(_inner) => TypeRef::Placeholder, ast::Type::FnPointerType(inner) => { let ret_ty = inner .ret_type() diff --git a/crates/ra_parser/src/grammar/types.rs b/crates/ra_parser/src/grammar/types.rs index 9e8e3bd97..e9a20fbf1 100644 --- a/crates/ra_parser/src/grammar/types.rs +++ b/crates/ra_parser/src/grammar/types.rs @@ -172,7 +172,7 @@ fn placeholder_type(p: &mut Parser) { assert!(p.at(T![_])); let m = p.start(); p.bump(T![_]); - m.complete(p, PLACEHOLDER_TYPE); + m.complete(p, INFER_TYPE); } // test fn_pointer_type diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs index be4da67bc..64ab18217 100644 --- a/crates/ra_parser/src/syntax_kind/generated.rs +++ b/crates/ra_parser/src/syntax_kind/generated.rs @@ -147,7 +147,7 @@ pub enum SyntaxKind { ARRAY_TYPE, SLICE_TYPE, REFERENCE_TYPE, - PLACEHOLDER_TYPE, + INFER_TYPE, FN_POINTER_TYPE, FOR_TYPE, IMPL_TRAIT_TYPE, diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 9cfd5d017..465cb3202 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs @@ -594,10 +594,10 @@ impl ReferenceType { pub fn ty(&self) -> Option { support::child(&self.syntax) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct PlaceholderType { +pub struct InferType { pub(crate) syntax: SyntaxNode, } -impl PlaceholderType { +impl InferType { pub fn underscore_token(&self) -> Option { support::token(&self.syntax, T![_]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -1291,7 +1291,7 @@ pub enum Type { ArrayType(ArrayType), SliceType(SliceType), ReferenceType(ReferenceType), - PlaceholderType(PlaceholderType), + InferType(InferType), FnPointerType(FnPointerType), ForType(ForType), ImplTraitType(ImplTraitType), @@ -1988,8 +1988,8 @@ impl AstNode for ReferenceType { } fn syntax(&self) -> &SyntaxNode { &self.syntax } } -impl AstNode for PlaceholderType { - fn can_cast(kind: SyntaxKind) -> bool { kind == PLACEHOLDER_TYPE } +impl AstNode for InferType { + fn can_cast(kind: SyntaxKind) -> bool { kind == INFER_TYPE } fn cast(syntax: SyntaxNode) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) @@ -2871,8 +2871,8 @@ impl From for Type { impl From for Type { fn from(node: ReferenceType) -> Type { Type::ReferenceType(node) } } -impl From for Type { - fn from(node: PlaceholderType) -> Type { Type::PlaceholderType(node) } +impl From for Type { + fn from(node: InferType) -> Type { Type::InferType(node) } } impl From for Type { fn from(node: FnPointerType) -> Type { Type::FnPointerType(node) } @@ -2890,7 +2890,7 @@ impl AstNode for Type { fn can_cast(kind: SyntaxKind) -> bool { match kind { PAREN_TYPE | TUPLE_TYPE | NEVER_TYPE | PATH_TYPE | POINTER_TYPE | ARRAY_TYPE - | SLICE_TYPE | REFERENCE_TYPE | PLACEHOLDER_TYPE | FN_POINTER_TYPE | FOR_TYPE + | SLICE_TYPE | REFERENCE_TYPE | INFER_TYPE | FN_POINTER_TYPE | FOR_TYPE | IMPL_TRAIT_TYPE | DYN_TRAIT_TYPE => true, _ => false, } @@ -2905,7 +2905,7 @@ impl AstNode for Type { ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }), SLICE_TYPE => Type::SliceType(SliceType { syntax }), REFERENCE_TYPE => Type::ReferenceType(ReferenceType { syntax }), - PLACEHOLDER_TYPE => Type::PlaceholderType(PlaceholderType { syntax }), + INFER_TYPE => Type::InferType(InferType { syntax }), FN_POINTER_TYPE => Type::FnPointerType(FnPointerType { syntax }), FOR_TYPE => Type::ForType(ForType { syntax }), IMPL_TRAIT_TYPE => Type::ImplTraitType(ImplTraitType { syntax }), @@ -2924,7 +2924,7 @@ impl AstNode for Type { Type::ArrayType(it) => &it.syntax, Type::SliceType(it) => &it.syntax, Type::ReferenceType(it) => &it.syntax, - Type::PlaceholderType(it) => &it.syntax, + Type::InferType(it) => &it.syntax, Type::FnPointerType(it) => &it.syntax, Type::ForType(it) => &it.syntax, Type::ImplTraitType(it) => &it.syntax, @@ -3719,7 +3719,7 @@ impl std::fmt::Display for ReferenceType { std::fmt::Display::fmt(self.syntax(), f) } } -impl std::fmt::Display for PlaceholderType { +impl std::fmt::Display for InferType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(self.syntax(), f) } diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast index 57008e5fe..e4fe2b948 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast @@ -7,7 +7,7 @@ SOURCE_FILE@0..22 WHITESPACE@16..17 " " EQ@17..18 "=" WHITESPACE@18..19 " " - PLACEHOLDER_TYPE@19..20 + INFER_TYPE@19..20 UNDERSCORE@19..20 "_" SEMICOLON@20..21 ";" WHITESPACE@21..22 "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast index f5e20b93d..f8910677b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0164_type_path_in_pattern.rast @@ -19,7 +19,7 @@ SOURCE_FILE@0..33 PATH@16..19 PATH_SEGMENT@16..19 L_ANGLE@16..17 "<" - PLACEHOLDER_TYPE@17..18 + INFER_TYPE@17..18 UNDERSCORE@17..18 "_" R_ANGLE@18..19 ">" COLON2@19..21 "::" 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 b04a505ea..66cd5727a 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 @@ -1640,10 +1640,10 @@ SOURCE_FILE@0..3813 COLON@2956..2957 ":" TUPLE_TYPE@2957..2962 L_PAREN@2957..2958 "(" - PLACEHOLDER_TYPE@2958..2959 + INFER_TYPE@2958..2959 UNDERSCORE@2958..2959 "_" COMMA@2959..2960 "," - PLACEHOLDER_TYPE@2960..2961 + INFER_TYPE@2960..2961 UNDERSCORE@2960..2961 "_" R_PAREN@2961..2962 ")" COMMA@2962..2963 "," diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs index 114898e38..38b60b2a5 100644 --- a/xtask/src/ast_src.rs +++ b/xtask/src/ast_src.rs @@ -117,7 +117,7 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc { "ARRAY_TYPE", "SLICE_TYPE", "REFERENCE_TYPE", - "PLACEHOLDER_TYPE", + "INFER_TYPE", "FN_POINTER_TYPE", "FOR_TYPE", "IMPL_TRAIT_TYPE", diff --git a/xtask/src/codegen/rust.ungram b/xtask/src/codegen/rust.ungram index 8f0e66278..5dee85c2d 100644 --- a/xtask/src/codegen/rust.ungram +++ b/xtask/src/codegen/rust.ungram @@ -197,7 +197,7 @@ Type = | ArrayType | SliceType | ReferenceType -| PlaceholderType +| InferType | FnPointerType | ForType | ImplTraitType @@ -206,28 +206,28 @@ Type = ParenType = '(' Type ')' -TupleType = - '(' fields:Type* ')' - NeverType = '!' PathType = Path +TupleType = + '(' fields:(Type (',' Type)* ','?)? ')' + PointerType = '*' ('const' | 'mut') Type +ReferenceType = + '&' 'lifetime'? 'mut'? Type + ArrayType = '[' Type ';' Expr ']' SliceType = '[' Type ']' -ReferenceType = - '&' 'lifetime'? 'mut'? Type - -PlaceholderType = +InferType = '_' FnPointerType = -- cgit v1.2.3