diff --git a/naga/src/front/wgsl/lower/mod.rs b/naga/src/front/wgsl/lower/mod.rs index 78e81350b43..e8007965875 100644 --- a/naga/src/front/wgsl/lower/mod.rs +++ b/naga/src/front/wgsl/lower/mod.rs @@ -1244,7 +1244,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { .arguments .iter() .enumerate() - .map(|(i, arg)| { + .map(|(i, arg)| -> Result<_, Error<'_>> { let ty = self.resolve_ast_type(arg.ty, ctx)?; let expr = expressions .append(crate::Expression::FunctionArgument(i as u32), arg.name.span); @@ -1263,7 +1263,7 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { let result = f .result .as_ref() - .map(|res| { + .map(|res| -> Result<_, Error<'_>> { let ty = self.resolve_ast_type(res.ty, ctx)?; Ok(crate::FunctionResult { ty, diff --git a/naga/src/front/wgsl/parse/mod.rs b/naga/src/front/wgsl/parse/mod.rs index fcfcc377501..e91541e7679 100644 --- a/naga/src/front/wgsl/parse/mod.rs +++ b/naga/src/front/wgsl/parse/mod.rs @@ -1906,10 +1906,8 @@ impl Parser { let _ = lexer.next(); let mut body = ast::Block::default(); - let (condition, span) = lexer.capture_span(|lexer| { - let condition = self.general_expression(lexer, ctx)?; - Ok(condition) - })?; + let (condition, span) = + lexer.capture_span(|lexer| self.general_expression(lexer, ctx))?; let mut reject = ast::Block::default(); reject.stmts.push(ast::Statement { kind: ast::StatementKind::Break, @@ -1966,9 +1964,9 @@ impl Parser { let mut body = ast::Block::default(); if !lexer.skip(Token::Separator(';')) { let (condition, span) = lexer.capture_span(|lexer| { - let condition = self.general_expression(lexer, ctx)?; - lexer.expect(Token::Separator(';'))?; - Ok(condition) + self.general_expression(lexer, ctx).and_then(|condition| { + lexer.expect(Token::Separator(';')).map(|()| condition) + }) })?; let mut reject = ast::Block::default(); reject.stmts.push(ast::Statement {