diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs b/sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs index 5eca8e967d3..109bd8669d9 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/impl_trait.rs @@ -489,7 +489,12 @@ impl TyImplSelfOrTrait { (ImplItem::Type(_type_decl), TyTraitItem::Type(_decl_ref)) => { // Already processed. } - _ => unreachable!(), + _ => { + handler.emit_err(CompileError::Internal( + "Unexpected ImplItem tuple.", + Span::dummy(), + )); + } } } @@ -542,7 +547,12 @@ impl TyImplSelfOrTrait { (ImplItem::Type(_type_decl), TyTraitItem::Type(_decl_ref)) => { // Already processed. } - _ => unreachable!(), + _ => { + handler.emit_err(CompileError::Internal( + "Unexpected ImplItem tuple.", + Span::dummy(), + )); + } } } diff --git a/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/.gitignore b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/.gitignore new file mode 100644 index 00000000000..77d3844f58c --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/.gitignore @@ -0,0 +1,2 @@ +out +target diff --git a/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/Forc.lock b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/Forc.lock new file mode 100644 index 00000000000..d8670265e2e --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/Forc.lock @@ -0,0 +1,8 @@ +[[package]] +name = "core" +source = "path+from-root-082ED3C1A64D1BB4" + +[[package]] +name = "lexer_errors" +source = "member" +dependencies = ["core"] diff --git a/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/Forc.toml b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/Forc.toml new file mode 100644 index 00000000000..1b354765afa --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/Forc.toml @@ -0,0 +1,9 @@ +[project] +authors = ["Fuel Labs "] +entry = "main.sw" +license = "Apache-2.0" +name = "lexer_errors" +implicit-std = false + +[dependencies] +core = { path = "../../../../../../sway-lib-core" } diff --git a/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/src/main.sw new file mode 100644 index 00000000000..2afd00663ab --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/src/main.sw @@ -0,0 +1,15 @@ +library; + +pub struct R { + a: u32, +} + +impl R { + pub fn from_str(new: i32) { +p() { + :Script => { + c = ZERO_B256; + ), } +} + +const OFFSET = 0; \ No newline at end of file diff --git a/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/test.toml b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/test.toml new file mode 100644 index 00000000000..1564ded8e80 --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_fail/lexer_errors/test.toml @@ -0,0 +1,8 @@ +category = "fail" + +# check: $()error +# check: $()mismatched delimiters + +# check: $()error +# check: $()impl R { +# nextln: $()unclosed delimiter \ No newline at end of file