mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
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:
parent
fc8e87b274
commit
2ac46f6517
@ -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`
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -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")
|
||||
}
|
||||
};
|
||||
|
@ -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,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user