remove flavor

This commit is contained in:
Aleksey Kladov 2019-04-02 12:25:24 +03:00
parent 5287a2506c
commit f3a82c372c
3 changed files with 10 additions and 10 deletions

View file

@ -11,8 +11,8 @@ pub(crate) fn replace_if_let_with_match(mut ctx: AssistCtx<impl HirDatabase>) ->
let expr = cond.expr()?;
let then_block = if_expr.then_branch()?;
let else_block = match if_expr.else_branch()? {
ast::ElseBranchFlavor::Block(it) => it,
ast::ElseBranchFlavor::IfExpr(_) => return None,
ast::ElseBranch::Block(it) => it,
ast::ElseBranch::IfExpr(_) => return None,
};
ctx.add_action(AssistId("replace_if_let_with_match"), "replace with match", |edit| {

View file

@ -516,8 +516,8 @@ impl ExprCollector {
let else_branch = e
.else_branch()
.map(|b| match b {
ast::ElseBranchFlavor::Block(it) => self.collect_block(it),
ast::ElseBranchFlavor::IfExpr(elif) => {
ast::ElseBranch::Block(it) => self.collect_block(it),
ast::ElseBranch::IfExpr(elif) => {
let expr: &ast::Expr = ast::Expr::cast(elif.syntax()).unwrap();
self.collect_expr(expr)
}
@ -533,8 +533,8 @@ impl ExprCollector {
let condition = self.collect_expr_opt(e.condition().and_then(|c| c.expr()));
let then_branch = self.collect_block_opt(e.then_branch());
let else_branch = e.else_branch().map(|b| match b {
ast::ElseBranchFlavor::Block(it) => self.collect_block(it),
ast::ElseBranchFlavor::IfExpr(elif) => {
ast::ElseBranch::Block(it) => self.collect_block(it),
ast::ElseBranch::IfExpr(elif) => {
let expr: &ast::Expr = ast::Expr::cast(elif.syntax()).unwrap();
self.collect_expr(expr)
}

View file

@ -164,7 +164,7 @@ impl LetStmt {
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ElseBranchFlavor<'a> {
pub enum ElseBranch<'a> {
Block(&'a Block),
IfExpr(&'a IfExpr),
}
@ -173,12 +173,12 @@ impl IfExpr {
pub fn then_branch(&self) -> Option<&Block> {
self.blocks().nth(0)
}
pub fn else_branch(&self) -> Option<ElseBranchFlavor> {
pub fn else_branch(&self) -> Option<ElseBranch> {
let res = match self.blocks().nth(1) {
Some(block) => ElseBranchFlavor::Block(block),
Some(block) => ElseBranch::Block(block),
None => {
let elif: &IfExpr = child_opt(self)?;
ElseBranchFlavor::IfExpr(elif)
ElseBranch::IfExpr(elif)
}
};
Some(res)