Reame PlaceholderType -> InferType

This commit is contained in:
Aleksey Kladov 2020-07-31 13:22:47 +02:00
parent 08ea2271e8
commit a6e45c6c69
10 changed files with 28 additions and 28 deletions

View file

@ -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;
}
}

View file

@ -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()

View file

@ -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

View file

@ -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,

View file

@ -594,10 +594,10 @@ impl ReferenceType {
pub fn ty(&self) -> Option<Type> { 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<SyntaxToken> { 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<Self> {
if Self::can_cast(syntax.kind()) {
Some(Self { syntax })
@ -2871,8 +2871,8 @@ impl From<SliceType> for Type {
impl From<ReferenceType> for Type {
fn from(node: ReferenceType) -> Type { Type::ReferenceType(node) }
}
impl From<PlaceholderType> for Type {
fn from(node: PlaceholderType) -> Type { Type::PlaceholderType(node) }
impl From<InferType> for Type {
fn from(node: InferType) -> Type { Type::InferType(node) }
}
impl From<FnPointerType> 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)
}

View file

@ -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"

View file

@ -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 "::"

View file

@ -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 ","

View file

@ -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",

View file

@ -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 =