fn validate_expr_and_exit(mut self, expr: syntax::Expr) -> validated::Expr {
        let expr = self.validate_expr(expr);

        let vars = self.scope.take_inserted();
        if vars.is_empty() {
            return expr;
        }

        let origin = self.origins[expr].synthesized();
        self.add(validated::ExprData::Declare(vars, expr), origin)
    }
/// Validate the expression and then exit the subscope (consumes self).
///
/// Exiting the subscope will pop-off any variables that were declared
/// within.
///
/// Returns the validated result, wrapped in `Declare` if necessary.
Validate the expression and then exit the subscope (consumes self).
Exiting the subscope will pop-off any variables that were declared
within.

Returns the validated result, wrapped in `Declare` if necessary.
Validate the expression and then exit the subscope ( consumes self ) . Exiting the subscope will pop - off any variables that were declared within . Returns the validated result wrapped in ` Declare ` if necessary .
fn validate_expr_and_exit(mut self, expr: syntax::Expr) -> validated::Expr {
        let expr = self.validate_expr(expr);
        let vars = self.scope.take_inserted();
        if vars.is_empty() {
            return expr;
        }
        let origin = self.origins[expr].synthesized();
        self.add(validated::ExprData::Declare(vars, expr), origin)
    }
fn validate_expr_and_exit ( mut self , expr : syntax :: Expr ) -> validated :: Expr { let expr = self . validate_expr ( expr ) ; let vars = self . scope . take_inserted ( ) ; if vars . is_empty ( ) { return expr ; } let origin = self . origins [ expr ] . synthesized ( ) ; self . add ( validated :: ExprData :: Declare ( vars , expr ) , origin ) }
Validate the expression and then exit the subscope (consumes self).
Validate the expression and then exit the subscope ( consumes self ) .
mut self
expr
syntax::Expr
mut self
expr
syntax::Expr