小编Cpu*_*d36的帖子

为什么Rust的if-else AST使用不同的类型呢?

我在写锈皮棉插件时,我发现,锈使用不同类型的代表(Block)和其他(Expr一)的部分if在这两个声明libsyntax::ast::ExprKindlibrustc::hir::Expr_.

我需要他们两个都有共同的类型.

我应该只使用明确的匹配hir::Expr_::ExprBlock,否则部分可能是其他东西,我需要进行更智能的比较?

来源:

// ...
pub enum Expr_ {
    // ...
    /// An `if` block, with an optional else block
    ///
    /// `if expr { block } else { expr }`
    ExprIf(P<Expr>, P<Block>, Option<P<Expr>>),
    // ...
}
// ...
Run Code Online (Sandbox Code Playgroud)

rust

12
推荐指数
1
解决办法
236
查看次数

标签 统计

rust ×1