MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / parse_iflet_or_expr

Method parse_iflet_or_expr

cranelift/isle/isle/src/parser.rs:912–930  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

910 }
911
912 fn parse_iflet_or_expr(&mut self) -> Result<IfLetOrExpr> {
913 let pos = self.pos();
914 if self.is_lparen() {
915 self.expect_lparen()?;
916 let ret = if self.eat_sym_str("if-let")? {
917 IfLetOrExpr::IfLet(self.parse_iflet()?)
918 } else if self.eat_sym_str("if")? {
919 // Shorthand form: `(if (x))` desugars to `(if-let _
920 // (x))`.
921 IfLetOrExpr::IfLet(self.parse_iflet_if()?)
922 } else {
923 IfLetOrExpr::Expr(self.parse_expr_inner_parens(pos)?)
924 };
925 self.expect_rparen()?;
926 Ok(ret)
927 } else {
928 self.parse_expr().map(IfLetOrExpr::Expr)
929 }
930 }
931
932 fn parse_iflet(&mut self) -> Result<IfLet> {
933 let pos = self.pos();

Callers 1

parse_ruleMethod · 0.80

Calls 13

OkFunction · 0.85
is_lparenMethod · 0.80
expect_lparenMethod · 0.80
eat_sym_strMethod · 0.80
parse_ifletMethod · 0.80
parse_iflet_ifMethod · 0.80
expect_rparenMethod · 0.80
parse_exprMethod · 0.80
IfLetClass · 0.70
ExprEnum · 0.70
posMethod · 0.45

Tested by

no test coverage detected