Skip to content

Commit

Permalink
Merge branch 'master' into bitzoic-6038
Browse files Browse the repository at this point in the history
  • Loading branch information
bitzoic authored Jun 6, 2024
2 parents b87e43b + e1fcf98 commit 988004d
Showing 1 changed file with 19 additions and 21 deletions.
40 changes: 19 additions & 21 deletions sway-core/src/semantic_analysis/ast_node/declaration/auto_impl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -234,8 +234,8 @@ where

use std::fmt::Write;
let mut code = String::new();
writeln!(&mut code, "let variant: u64 = buffer.decode::<u64>();").unwrap();
writeln!(&mut code, "match variant {{ {arms} _ => __revert(0), }}").unwrap();
let _ = writeln!(&mut code, "let variant: u64 = buffer.decode::<u64>();");
let _ = writeln!(&mut code, "match variant {{ {arms} _ => __revert(0), }}");

Some(code)
}
Expand Down Expand Up @@ -306,7 +306,7 @@ where

let decl = match nodes[0].content {
AstNodeContent::Declaration(Declaration::FunctionDeclaration(f)) => f,
_ => todo!(),
_ => unreachable!("unexpected node"),
};

if handler.has_errors() {
Expand All @@ -324,21 +324,19 @@ where
assert!(!handler.has_warnings(), "{:?}", handler);

let ctx = self.ctx.by_ref();
let (decl, namespace) = ctx
.scoped_and_namespace(|ctx| {
TyDecl::type_check(
&handler,
ctx,
parsed::Declaration::FunctionDeclaration(decl),
)
})
.unwrap();

assert!(!handler.has_warnings(), "{:?}", handler);
let r = ctx.scoped_and_namespace(|ctx| {
TyDecl::type_check(
&handler,
ctx,
parsed::Declaration::FunctionDeclaration(decl),
)
});

// Uncomment this to understand why an entry function was not generated
// println!("{:#?}", handler);

let (decl, namespace) = r.map_err(|_| handler.clone())?;

if handler.has_errors() || matches!(decl, TyDecl::ErrorRecovery(_, _)) {
Err(handler)
} else {
Expand Down Expand Up @@ -371,21 +369,21 @@ where

let decl = match nodes[0].content {
AstNodeContent::Declaration(Declaration::ImplTrait(f)) => f,
_ => todo!(),
_ => unreachable!("unexpected item"),
};

assert!(!handler.has_errors(), "{:?}", handler);

let ctx = self.ctx.by_ref();
let (decl, namespace) = ctx
.scoped_and_namespace(|ctx| {
TyDecl::type_check(&handler, ctx, Declaration::ImplTrait(decl))
})
.unwrap();
let r = ctx.scoped_and_namespace(|ctx| {
TyDecl::type_check(&handler, ctx, Declaration::ImplTrait(decl))
});

// Uncomment this to understand why auto impl failed for a type.
// println!("{:#?}", handler);

let (decl, namespace) = r.map_err(|_| handler.clone())?;

if handler.has_errors() || matches!(decl, TyDecl::ErrorRecovery(_, _)) {
Err(handler)
} else {
Expand Down Expand Up @@ -785,7 +783,7 @@ where
if let Some(constraint_not_satisfied) = constraint_not_satisfied {
let ty = match constraint_not_satisfied {
CompileError::TraitConstraintNotSatisfied { ty, .. } => ty,
_ => unreachable!(),
_ => unreachable!("unexpected error"),
};
handler.emit_err(CompileError::CouldNotGenerateEntryMissingImpl {
ty,
Expand Down

0 comments on commit 988004d

Please sign in to comment.