Rename AssocOp::As as AssocOp::Cast.

To match `ExprKind::Cast`, and because a semantic name makes more sense
here than a syntactic name.
This commit is contained in:
Nicholas Nethercote 2024-12-19 21:46:44 +11:00
parent fc8e87b274
commit 2ac46f6517
3 changed files with 16 additions and 16 deletions

View File

@ -13,7 +13,7 @@ pub enum AssocOp {
/// `=`
Assign,
/// `as`
As,
Cast,
/// `..` or `..=` range
Range(RangeLimits),
}
@ -67,7 +67,7 @@ impl AssocOp {
token::DotDotEq | token::DotDotDot => Some(Range(RangeLimits::Closed)),
// `<-` should probably be `< -`
token::LArrow => Some(Binary(BinOpKind::Lt)),
_ if t.is_keyword(kw::As) => Some(As),
_ if t.is_keyword(kw::As) => Some(Cast),
_ => None,
}
}
@ -76,7 +76,7 @@ impl AssocOp {
pub fn precedence(&self) -> ExprPrecedence {
use AssocOp::*;
match *self {
As => ExprPrecedence::Cast,
Cast => ExprPrecedence::Cast,
Binary(bin_op) => bin_op.precedence(),
Range(_) => ExprPrecedence::Range,
Assign | AssignOp(_) => ExprPrecedence::Assign,
@ -90,7 +90,7 @@ impl AssocOp {
match *self {
Assign | AssignOp(_) => Fixity::Right,
Binary(binop) => binop.fixity(),
As => Fixity::Left,
Cast => Fixity::Left,
Range(_) => Fixity::None,
}
}
@ -99,7 +99,7 @@ impl AssocOp {
use AssocOp::*;
match *self {
Binary(binop) => binop.is_comparison(),
Assign | AssignOp(_) | As | Range(_) => false,
Assign | AssignOp(_) | Cast | Range(_) => false,
}
}
@ -107,7 +107,7 @@ impl AssocOp {
use AssocOp::*;
match *self {
Assign | AssignOp(_) => true,
As | Binary(_) | Range(_) => false,
Cast | Binary(_) | Range(_) => false,
}
}
@ -133,7 +133,7 @@ impl AssocOp {
AssignOp(_) | // `{ 42 } +=`
// Equal | // `{ 42 } == { 42 }` Accepting these here would regress incorrect
// NotEqual | // `{ 42 } != { 42 } struct literals parser recovery.
As // `{ 42 } as usize`
Cast // `{ 42 } as usize`
)
}
}

View File

@ -264,7 +264,7 @@ impl<'a> Parser<'a> {
let op = op.node;
// Special cases:
if op == AssocOp::As {
if op == AssocOp::Cast {
lhs = self.parse_assoc_op_cast(lhs, lhs_span, ExprKind::Cast)?;
continue;
} else if let AssocOp::Range(limits) = op {
@ -294,7 +294,7 @@ impl<'a> Parser<'a> {
let aopexpr = self.mk_assign_op(source_map::respan(cur_op_span, aop), lhs, rhs);
self.mk_expr(span, aopexpr)
}
AssocOp::As | AssocOp::Range(_) => {
AssocOp::Cast | AssocOp::Range(_) => {
self.dcx().span_bug(span, "AssocOp should have been handled by special case")
}
};

View File

@ -163,7 +163,7 @@ impl<'a> Sugg<'a> {
),
ExprKind::Cast(lhs, ty) |
//FIXME(chenyukang), remove this after type ascription is removed from AST
ExprKind::Type(lhs, ty) => Sugg::BinOp(AssocOp::As, get_snippet(lhs.span), get_snippet(ty.span)),
ExprKind::Type(lhs, ty) => Sugg::BinOp(AssocOp::Cast, get_snippet(lhs.span), get_snippet(ty.span)),
}
}
@ -246,7 +246,7 @@ impl<'a> Sugg<'a> {
ast::ExprKind::Cast(ref lhs, ref ty) |
//FIXME(chenyukang), remove this after type ascription is removed from AST
ast::ExprKind::Type(ref lhs, ref ty) => Sugg::BinOp(
AssocOp::As,
AssocOp::Cast,
snippet(lhs.span),
snippet(ty.span),
),
@ -265,7 +265,7 @@ impl<'a> Sugg<'a> {
/// Convenience method to create the `<lhs> as <rhs>` suggestion.
pub fn as_ty<R: Display>(self, rhs: R) -> Sugg<'static> {
make_assoc(AssocOp::As, &self, &Sugg::NonParen(rhs.to_string().into()))
make_assoc(AssocOp::Cast, &self, &Sugg::NonParen(rhs.to_string().into()))
}
/// Convenience method to create the `&<expr>` suggestion.
@ -356,7 +356,7 @@ fn binop_to_string(op: AssocOp, lhs: &str, rhs: &str) -> String {
AssocOp::Binary(op) => format!("{lhs} {} {rhs}", op.as_str()),
AssocOp::Assign => format!("{lhs} = {rhs}"),
AssocOp::AssignOp(op) => format!("{lhs} {}= {rhs}", op.as_str()),
AssocOp::As => format!("{lhs} as {rhs}"),
AssocOp::Cast => format!("{lhs} as {rhs}"),
AssocOp::Range(limits) => format!("{lhs}{}{rhs}", limits.as_str()),
}
}
@ -432,7 +432,7 @@ impl Neg for Sugg<'_> {
type Output = Sugg<'static>;
fn neg(self) -> Sugg<'static> {
match &self {
Self::BinOp(AssocOp::As, ..) => Sugg::MaybeParen(format!("-({self})").into()),
Self::BinOp(AssocOp::Cast, ..) => Sugg::MaybeParen(format!("-({self})").into()),
_ => make_unop("-", self),
}
}
@ -576,14 +576,14 @@ enum Associativity {
/// associative.
#[must_use]
fn associativity(op: AssocOp) -> Associativity {
use rustc_ast::util::parser::AssocOp::{As, Assign, AssignOp, Binary, Range};
use rustc_ast::util::parser::AssocOp::{Assign, AssignOp, Binary, Cast, Range};
use ast::BinOpKind::{
Add, BitAnd, BitOr, BitXor, Div, Eq, Gt, Ge, And, Or, Lt, Le, Rem, Mul, Ne, Shl, Shr, Sub,
};
match op {
Assign | AssignOp(_) => Associativity::Right,
Binary(Add | BitAnd | BitOr | BitXor | And | Or | Mul) | As => Associativity::Both,
Binary(Add | BitAnd | BitOr | BitXor | And | Or | Mul) | Cast => Associativity::Both,
Binary(Div | Eq | Gt | Ge | Lt | Le | Rem | Ne | Shl | Shr | Sub) => Associativity::Left,
Range(_) => Associativity::None,
}