Repository: bytecodealliance/wasm-tools
Pull request #1221 (2023-09-27 17:41:27)

 WIT: Parse and print a semicolon after package statements 
Dual of https://github.com/WebAssembly/component-model/pull/257

alexcrichton: I'm also going to include a version bump here to get included in other repositories.

Patch:
diff --git a/Cargo.lock b/Cargo.lock
index 90e432dd..afb91d54 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1707,7 +1707,7 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
 name = "wasm-compose"
-version = "0.4.5"
+version = "0.4.6"
 dependencies = [
  "anyhow",
  "glob",
@@ -1831,7 +1831,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-tools"
-version = "1.0.43"
+version = "1.0.44"
 dependencies = [
  "addr2line",
  "anyhow",
@@ -1862,7 +1862,7 @@ dependencies = [
  "wast",
  "wat",
  "wit-component",
- "wit-parser 0.11.2",
+ "wit-parser 0.11.3",
  "wit-smith",
 ]
 
@@ -1899,7 +1899,7 @@ dependencies = [
  "wast",
  "wat",
  "wit-component",
- "wit-parser 0.11.2",
+ "wit-parser 0.11.3",
  "wit-smith",
 ]
 
@@ -2350,7 +2350,7 @@ checksum = "bd1df36d9fd0bbe4849461de9b969f765170f4e0f90497d580a235d515722b10"
 
 [[package]]
 name = "wit-component"
-version = "0.14.3"
+version = "0.14.4"
 dependencies = [
  "anyhow",
  "bitflags 2.4.0",
@@ -2367,7 +2367,7 @@ dependencies = [
  "wasmprinter 0.2.67",
  "wasmtime",
  "wat",
- "wit-parser 0.11.2",
+ "wit-parser 0.11.3",
 ]
 
 [[package]]
@@ -2388,7 +2388,7 @@ dependencies = [
 
 [[package]]
 name = "wit-parser"
-version = "0.11.2"
+version = "0.11.3"
 dependencies = [
  "anyhow",
  "env_logger",
@@ -2414,12 +2414,12 @@ dependencies = [
  "libfuzzer-sys",
  "log",
  "wasmprinter 0.2.67",
- "wit-parser 0.11.2",
+ "wit-parser 0.11.3",
 ]
 
 [[package]]
 name = "wit-smith"
-version = "0.1.13"
+version = "0.1.14"
 dependencies = [
  "arbitrary",
  "clap 4.3.22",
@@ -2427,7 +2427,7 @@ dependencies = [
  "log",
  "semver",
  "wit-component",
- "wit-parser 0.11.2",
+ "wit-parser 0.11.3",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index a3e4a4a6..69028976 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "wasm-tools"
-version = "1.0.43"
+version = "1.0.44"
 authors = ["The Wasmtime Project Developers"]
 edition.workspace = true
 description = "CLI tools for interoperating with WebAssembly files"
@@ -45,7 +45,7 @@ pretty_assertions = "1.3.0"
 semver = "1.0.0"
 
 wasm-encoder = { version = "0.33.2", path = "crates/wasm-encoder" }
-wasm-compose = { version = "0.4.5", path = "crates/wasm-compose" }
+wasm-compose = { version = "0.4.6", path = "crates/wasm-compose" }
 wasm-metadata = { version = "0.10.6", path = "crates/wasm-metadata" }
 wasm-mutate = { version = "0.2.35", path = "crates/wasm-mutate" }
 wasm-shrink = { version = "0.1.36", path = "crates/wasm-shrink" }
@@ -54,9 +54,9 @@ wasmparser = { version = "0.113.2", path = "crates/wasmparser" }
 wasmprinter = { version = "0.2.67", path = "crates/wasmprinter" }
 wast = { version = "65.0.2", path = "crates/wast" }
 wat = { version = "1.0.74", path = "crates/wat" }
-wit-component = { version = "0.14.3", path = "crates/wit-component" }
-wit-parser = { version = "0.11.2", path = "crates/wit-parser" }
-wit-smith = { version = "0.1.13", path = "crates/wit-smith" }
+wit-component = { version = "0.14.4", path = "crates/wit-component" }
+wit-parser = { version = "0.11.3", path = "crates/wit-parser" }
+wit-smith = { version = "0.1.14", path = "crates/wit-smith" }
 
 [dependencies]
 anyhow = { workspace = true }
diff --git a/crates/wasm-compose/Cargo.toml b/crates/wasm-compose/Cargo.toml
index 088eaf41..bd83d351 100644
--- a/crates/wasm-compose/Cargo.toml
+++ b/crates/wasm-compose/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "wasm-compose"
-version = "0.4.5"
+version = "0.4.6"
 edition.workspace = true
 authors = ["Peter Huene <peter@huene.dev>"]
 license = "Apache-2.0 WITH LLVM-exception"
diff --git a/crates/wit-component/Cargo.toml b/crates/wit-component/Cargo.toml
index c956cb32..8b6c2e7e 100644
--- a/crates/wit-component/Cargo.toml
+++ b/crates/wit-component/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "wit-component"
 authors = ["Peter Huene <peter@huene.dev>"]
-version = "0.14.3"
+version = "0.14.4"
 edition.workspace = true
 license = "Apache-2.0 WITH LLVM-exception"
 readme = "README.md"
diff --git a/crates/wit-component/src/printing.rs b/crates/wit-component/src/printing.rs
index 331c6785..2fa9aba3 100644
--- a/crates/wit-component/src/printing.rs
+++ b/crates/wit-component/src/printing.rs
@@ -55,6 +55,7 @@ impl WitPrinter {
         if let Some(version) = &pkg.name.version {
             self.output.push_str(&format!("@{version}"));
         }
+        self.print_semicolon();
         self.output.push_str("\n\n");
         for (name, id) in pkg.interfaces.iter() {
             self.print_docs(&resolve.interfaces[*id].docs);
diff --git a/crates/wit-parser/Cargo.toml b/crates/wit-parser/Cargo.toml
index f0f045a0..2e04b0f3 100644
--- a/crates/wit-parser/Cargo.toml
+++ b/crates/wit-parser/Cargo.toml
@@ -1,7 +1,7 @@
 [package]
 name = "wit-parser"
 authors = ["Alex Crichton <alex@alexcrichton.com>"]
-version = "0.11.2"
+version = "0.11.3"
 edition.workspace = true
 license = "Apache-2.0 WITH LLVM-exception"
 readme = "README.md"
diff --git a/crates/wit-parser/src/ast.rs b/crates/wit-parser/src/ast.rs
index df335990..aca7a464 100644
--- a/crates/wit-parser/src/ast.rs
+++ b/crates/wit-parser/src/ast.rs
@@ -28,6 +28,7 @@ impl<'a> Ast<'a> {
         if lexer.eat(Token::Package)? {
             let package_docs = std::mem::take(&mut docs);
             package_id = Some(PackageName::parse(lexer, package_docs)?);
+            lexer.expect_semicolon()?;
             docs = parse_docs(lexer)?;
         }
         while lexer.clone().next()?.is_some() {
diff --git a/crates/wit-smith/Cargo.toml b/crates/wit-smith/Cargo.toml
index c8003e00..1e12a8e6 100644
--- a/crates/wit-smith/Cargo.toml
+++ b/crates/wit-smith/Cargo.toml
@@ -5,7 +5,7 @@ edition.workspace = true
 license = "Apache-2.0 WITH LLVM-exception"
 name = "wit-smith"
 repository = "https://github.com/bytecodealliance/wasm-tools/tree/main/crates/wit-smith"
-version = "0.1.13"
+version = "0.1.14"
 
 [dependencies]
 arbitrary = { workspace = true, features = ["derive"] }


Test patch:
diff --git a/crates/wit-component/tests/components/adapt-empty-interface/module.wit b/crates/wit-component/tests/components/adapt-empty-interface/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-empty-interface/module.wit
+++ b/crates/wit-component/tests/components/adapt-empty-interface/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-export-default/module.wit b/crates/wit-component/tests/components/adapt-export-default/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-export-default/module.wit
+++ b/crates/wit-component/tests/components/adapt-export-default/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-export-namespaced/module.wit b/crates/wit-component/tests/components/adapt-export-namespaced/module.wit
index 3f66e96f..c54087df 100644
--- a/crates/wit-component/tests/components/adapt-export-namespaced/module.wit
+++ b/crates/wit-component/tests/components/adapt-export-namespaced/module.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-export-reallocs/module.wit b/crates/wit-component/tests/components/adapt-export-reallocs/module.wit
index 3f66e96f..c54087df 100644
--- a/crates/wit-component/tests/components/adapt-export-reallocs/module.wit
+++ b/crates/wit-component/tests/components/adapt-export-reallocs/module.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-export-save-args/module.wit b/crates/wit-component/tests/components/adapt-export-save-args/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-export-save-args/module.wit
+++ b/crates/wit-component/tests/components/adapt-export-save-args/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-export-with-post-return/module.wit b/crates/wit-component/tests/components/adapt-export-with-post-return/module.wit
index 3f66e96f..c54087df 100644
--- a/crates/wit-component/tests/components/adapt-export-with-post-return/module.wit
+++ b/crates/wit-component/tests/components/adapt-export-with-post-return/module.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-import-only-used-in-adapter/module.wit b/crates/wit-component/tests/components/adapt-import-only-used-in-adapter/module.wit
index d6ff08b3..1dbfb938 100644
--- a/crates/wit-component/tests/components/adapt-import-only-used-in-adapter/module.wit
+++ b/crates/wit-component/tests/components/adapt-import-only-used-in-adapter/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import foo: func(x: string);
diff --git a/crates/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/module.wit b/crates/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/module.wit
+++ b/crates/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/module.wit b/crates/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/module.wit
index 3f66e96f..c54087df 100644
--- a/crates/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/module.wit
+++ b/crates/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/module.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-inject-stack-with-realloc/module.wit b/crates/wit-component/tests/components/adapt-inject-stack-with-realloc/module.wit
index 3f66e96f..c54087df 100644
--- a/crates/wit-component/tests/components/adapt-inject-stack-with-realloc/module.wit
+++ b/crates/wit-component/tests/components/adapt-inject-stack-with-realloc/module.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/module.wit b/crates/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/module.wit
+++ b/crates/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-inject-stack/module.wit b/crates/wit-component/tests/components/adapt-inject-stack/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-inject-stack/module.wit
+++ b/crates/wit-component/tests/components/adapt-inject-stack/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-list-return/module.wit b/crates/wit-component/tests/components/adapt-list-return/module.wit
index 3f66e96f..c54087df 100644
--- a/crates/wit-component/tests/components/adapt-list-return/module.wit
+++ b/crates/wit-component/tests/components/adapt-list-return/module.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-memory-simple/module.wit b/crates/wit-component/tests/components/adapt-memory-simple/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-memory-simple/module.wit
+++ b/crates/wit-component/tests/components/adapt-memory-simple/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-multiple/module.wit b/crates/wit-component/tests/components/adapt-multiple/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-multiple/module.wit
+++ b/crates/wit-component/tests/components/adapt-multiple/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/adapt-preview1/module.wit b/crates/wit-component/tests/components/adapt-preview1/module.wit
index 424bf36e..7e0d241f 100644
--- a/crates/wit-component/tests/components/adapt-preview1/module.wit
+++ b/crates/wit-component/tests/components/adapt-preview1/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import foo: interface {
diff --git a/crates/wit-component/tests/components/adapt-unused/module.wit b/crates/wit-component/tests/components/adapt-unused/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/adapt-unused/module.wit
+++ b/crates/wit-component/tests/components/adapt-unused/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/bare-funcs/module.wit b/crates/wit-component/tests/components/bare-funcs/module.wit
index 1d914732..69b0534e 100644
--- a/crates/wit-component/tests/components/bare-funcs/module.wit
+++ b/crates/wit-component/tests/components/bare-funcs/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 world module {
   import foo: func();
   import bar: func() -> string;
diff --git a/crates/wit-component/tests/components/empty/module.wit b/crates/wit-component/tests/components/empty/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/empty/module.wit
+++ b/crates/wit-component/tests/components/empty/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/ensure-default-type-exports/module.wit b/crates/wit-component/tests/components/ensure-default-type-exports/module.wit
index f3cf3e2c..6a484a55 100644
--- a/crates/wit-component/tests/components/ensure-default-type-exports/module.wit
+++ b/crates/wit-component/tests/components/ensure-default-type-exports/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = u8;
diff --git a/crates/wit-component/tests/components/error-adapt-missing-memory/module.wit b/crates/wit-component/tests/components/error-adapt-missing-memory/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/error-adapt-missing-memory/module.wit
+++ b/crates/wit-component/tests/components/error-adapt-missing-memory/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/error-default-export-sig-mismatch/module.wit b/crates/wit-component/tests/components/error-default-export-sig-mismatch/module.wit
index a6e65017..2d67f958 100644
--- a/crates/wit-component/tests/components/error-default-export-sig-mismatch/module.wit
+++ b/crates/wit-component/tests/components/error-default-export-sig-mismatch/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   export a: func(x: string) -> string;
diff --git a/crates/wit-component/tests/components/error-empty-module-import/module.wit b/crates/wit-component/tests/components/error-empty-module-import/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/error-empty-module-import/module.wit
+++ b/crates/wit-component/tests/components/error-empty-module-import/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/error-export-sig-mismatch/module.wit b/crates/wit-component/tests/components/error-export-sig-mismatch/module.wit
index 4a65a60d..f904f927 100644
--- a/crates/wit-component/tests/components/error-export-sig-mismatch/module.wit
+++ b/crates/wit-component/tests/components/error-export-sig-mismatch/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   export foo: interface {
diff --git a/crates/wit-component/tests/components/error-import-resource-rep/module.wit b/crates/wit-component/tests/components/error-import-resource-rep/module.wit
index c840169b..1223c43e 100644
--- a/crates/wit-component/tests/components/error-import-resource-rep/module.wit
+++ b/crates/wit-component/tests/components/error-import-resource-rep/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world module {
   resource a;
diff --git a/crates/wit-component/tests/components/error-import-resource-wrong-signature/module.wit b/crates/wit-component/tests/components/error-import-resource-wrong-signature/module.wit
index c840169b..1223c43e 100644
--- a/crates/wit-component/tests/components/error-import-resource-wrong-signature/module.wit
+++ b/crates/wit-component/tests/components/error-import-resource-wrong-signature/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world module {
   resource a;
diff --git a/crates/wit-component/tests/components/error-import-sig-mismatch/module.wit b/crates/wit-component/tests/components/error-import-sig-mismatch/module.wit
index 092c0788..2d963fb9 100644
--- a/crates/wit-component/tests/components/error-import-sig-mismatch/module.wit
+++ b/crates/wit-component/tests/components/error-import-sig-mismatch/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import foo: interface {
diff --git a/crates/wit-component/tests/components/error-invalid-module-import/module.wit b/crates/wit-component/tests/components/error-invalid-module-import/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/error-invalid-module-import/module.wit
+++ b/crates/wit-component/tests/components/error-invalid-module-import/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-bar.wit b/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-bar.wit
index 06bb1f91..ad16c9bf 100644
--- a/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-bar.wit
+++ b/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-bar.wit
@@ -1,3 +1,3 @@
-package test:test
+package test:test;
 
 world lib-bar { }
diff --git a/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-foo.wit b/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-foo.wit
index 38e89df9..576de434 100644
--- a/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-foo.wit
+++ b/crates/wit-component/tests/components/error-link-duplicate-symbols/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/error-link-missing-needed/lib-foo.wit b/crates/wit-component/tests/components/error-link-missing-needed/lib-foo.wit
index 38e89df9..576de434 100644
--- a/crates/wit-component/tests/components/error-link-missing-needed/lib-foo.wit
+++ b/crates/wit-component/tests/components/error-link-missing-needed/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/error-link-missing-symbols/lib-foo.wit b/crates/wit-component/tests/components/error-link-missing-symbols/lib-foo.wit
index 38e89df9..576de434 100644
--- a/crates/wit-component/tests/components/error-link-missing-symbols/lib-foo.wit
+++ b/crates/wit-component/tests/components/error-link-missing-symbols/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/error-missing-default-export/module.wit b/crates/wit-component/tests/components/error-missing-default-export/module.wit
index 05ce617d..7ed84b55 100644
--- a/crates/wit-component/tests/components/error-missing-default-export/module.wit
+++ b/crates/wit-component/tests/components/error-missing-default-export/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 world module {
   export a: func();
 }
diff --git a/crates/wit-component/tests/components/error-missing-export/module.wit b/crates/wit-component/tests/components/error-missing-export/module.wit
index e9425172..758adc09 100644
--- a/crates/wit-component/tests/components/error-missing-export/module.wit
+++ b/crates/wit-component/tests/components/error-missing-export/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   export foo: interface {
diff --git a/crates/wit-component/tests/components/error-missing-import-func/module.wit b/crates/wit-component/tests/components/error-missing-import-func/module.wit
index 40a7a903..4d21ad6e 100644
--- a/crates/wit-component/tests/components/error-missing-import-func/module.wit
+++ b/crates/wit-component/tests/components/error-missing-import-func/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   a: func();
diff --git a/crates/wit-component/tests/components/error-missing-import/module.wit b/crates/wit-component/tests/components/error-missing-import/module.wit
index 65c2b792..f5d68f90 100644
--- a/crates/wit-component/tests/components/error-missing-import/module.wit
+++ b/crates/wit-component/tests/components/error-missing-import/module.wit
@@ -1,2 +1,2 @@
-package foo:foo
+package foo:foo;
 world module {}
diff --git a/crates/wit-component/tests/components/export-interface-using-import/module.wit b/crates/wit-component/tests/components/export-interface-using-import/module.wit
index fc83a1c7..4a771a6c 100644
--- a/crates/wit-component/tests/components/export-interface-using-import/module.wit
+++ b/crates/wit-component/tests/components/export-interface-using-import/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   record f {
diff --git a/crates/wit-component/tests/components/export-name-shuffling/module.wit b/crates/wit-component/tests/components/export-name-shuffling/module.wit
index 2ac3826d..c38a7646 100644
--- a/crates/wit-component/tests/components/export-name-shuffling/module.wit
+++ b/crates/wit-component/tests/components/export-name-shuffling/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface name {
   record foo {
diff --git a/crates/wit-component/tests/components/export-resource/module.wit b/crates/wit-component/tests/components/export-resource/module.wit
index 80725353..58d9f4c2 100644
--- a/crates/wit-component/tests/components/export-resource/module.wit
+++ b/crates/wit-component/tests/components/export-resource/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world module {
   export foo: interface {
diff --git a/crates/wit-component/tests/components/export-type-name-conflict/module.wit b/crates/wit-component/tests/components/export-type-name-conflict/module.wit
index 6765b838..dcd67e67 100644
--- a/crates/wit-component/tests/components/export-type-name-conflict/module.wit
+++ b/crates/wit-component/tests/components/export-type-name-conflict/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   record foo {
diff --git a/crates/wit-component/tests/components/export-with-type-alias/module.wit b/crates/wit-component/tests/components/export-with-type-alias/module.wit
index 986120d6..4fa6a7c6 100644
--- a/crates/wit-component/tests/components/export-with-type-alias/module.wit
+++ b/crates/wit-component/tests/components/export-with-type-alias/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type a = u8;
diff --git a/crates/wit-component/tests/components/exports/module.wit b/crates/wit-component/tests/components/exports/module.wit
index a4062cb5..9e972320 100644
--- a/crates/wit-component/tests/components/exports/module.wit
+++ b/crates/wit-component/tests/components/exports/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   export a: func();
diff --git a/crates/wit-component/tests/components/import-and-export-resource/module.wit b/crates/wit-component/tests/components/import-and-export-resource/module.wit
index 55a93431..20bbbada 100644
--- a/crates/wit-component/tests/components/import-and-export-resource/module.wit
+++ b/crates/wit-component/tests/components/import-and-export-resource/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a;
diff --git a/crates/wit-component/tests/components/import-conflict/module.wit b/crates/wit-component/tests/components/import-conflict/module.wit
index 49ae768d..b835e5e1 100644
--- a/crates/wit-component/tests/components/import-conflict/module.wit
+++ b/crates/wit-component/tests/components/import-conflict/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   a: func();
diff --git a/crates/wit-component/tests/components/import-empty-interface/module.wit b/crates/wit-component/tests/components/import-empty-interface/module.wit
index 02b6a5dc..6522d92a 100644
--- a/crates/wit-component/tests/components/import-empty-interface/module.wit
+++ b/crates/wit-component/tests/components/import-empty-interface/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import foo: interface {}
diff --git a/crates/wit-component/tests/components/import-export-same-iface-name/deps/dep/foo.wit b/crates/wit-component/tests/components/import-export-same-iface-name/deps/dep/foo.wit
index d36f7235..ae5aa7af 100644
--- a/crates/wit-component/tests/components/import-export-same-iface-name/deps/dep/foo.wit
+++ b/crates/wit-component/tests/components/import-export-same-iface-name/deps/dep/foo.wit
@@ -1,4 +1,4 @@
-package foo:dep
+package foo:dep;
 
 interface the-name {
   a: func();
diff --git a/crates/wit-component/tests/components/import-export-same-iface-name/module.wit b/crates/wit-component/tests/components/import-export-same-iface-name/module.wit
index 1b46c164..219e1b4d 100644
--- a/crates/wit-component/tests/components/import-export-same-iface-name/module.wit
+++ b/crates/wit-component/tests/components/import-export-same-iface-name/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface the-name {
   a: func();
diff --git a/crates/wit-component/tests/components/import-export/module.wit b/crates/wit-component/tests/components/import-export/module.wit
index 92f96bf6..0f253837 100644
--- a/crates/wit-component/tests/components/import-export/module.wit
+++ b/crates/wit-component/tests/components/import-export/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import foo: interface {
diff --git a/crates/wit-component/tests/components/import-in-adapter-and-main-module/deps/shared-dependency/doc.wit b/crates/wit-component/tests/components/import-in-adapter-and-main-module/deps/shared-dependency/doc.wit
index acd02ff1..621d98e4 100644
--- a/crates/wit-component/tests/components/import-in-adapter-and-main-module/deps/shared-dependency/doc.wit
+++ b/crates/wit-component/tests/components/import-in-adapter-and-main-module/deps/shared-dependency/doc.wit
@@ -1,4 +1,4 @@
-package foo:shared-dependency
+package foo:shared-dependency;
 
 interface doc {
   f1: func();
diff --git a/crates/wit-component/tests/components/import-in-adapter-and-main-module/module.wit b/crates/wit-component/tests/components/import-in-adapter-and-main-module/module.wit
index d8dd5083..8056f1e2 100644
--- a/crates/wit-component/tests/components/import-in-adapter-and-main-module/module.wit
+++ b/crates/wit-component/tests/components/import-in-adapter-and-main-module/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import foo:shared-dependency/doc;
diff --git a/crates/wit-component/tests/components/import-partial-export-full/module.wit b/crates/wit-component/tests/components/import-partial-export-full/module.wit
index eab9e3bd..8d4fef5c 100644
--- a/crates/wit-component/tests/components/import-partial-export-full/module.wit
+++ b/crates/wit-component/tests/components/import-partial-export-full/module.wit
@@ -1,4 +1,4 @@
-package a:b
+package a:b;
 
 interface name {
   variant name2 {
diff --git a/crates/wit-component/tests/components/import-resource-in-interface/module.wit b/crates/wit-component/tests/components/import-resource-in-interface/module.wit
index d912f5b6..6d3c2266 100644
--- a/crates/wit-component/tests/components/import-resource-in-interface/module.wit
+++ b/crates/wit-component/tests/components/import-resource-in-interface/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world module {
   import foo: interface {
diff --git a/crates/wit-component/tests/components/import-resource-simple/module.wit b/crates/wit-component/tests/components/import-resource-simple/module.wit
index 7cf52a9e..6459ad51 100644
--- a/crates/wit-component/tests/components/import-resource-simple/module.wit
+++ b/crates/wit-component/tests/components/import-resource-simple/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world module {
   resource a {
diff --git a/crates/wit-component/tests/components/imports/module.wit b/crates/wit-component/tests/components/imports/module.wit
index 984e66c4..de0e1f80 100644
--- a/crates/wit-component/tests/components/imports/module.wit
+++ b/crates/wit-component/tests/components/imports/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import bar: interface {
diff --git a/crates/wit-component/tests/components/lift-options/module.wit b/crates/wit-component/tests/components/lift-options/module.wit
index 430ed616..0666dd71 100644
--- a/crates/wit-component/tests/components/lift-options/module.wit
+++ b/crates/wit-component/tests/components/lift-options/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface my-default {
   record r {
diff --git a/crates/wit-component/tests/components/link-bare-funcs/lib-c.wit b/crates/wit-component/tests/components/link-bare-funcs/lib-c.wit
index c745290f..262c853d 100644
--- a/crates/wit-component/tests/components/link-bare-funcs/lib-c.wit
+++ b/crates/wit-component/tests/components/link-bare-funcs/lib-c.wit
@@ -1,3 +1,3 @@
-package test:test
+package test:test;
 
 world lib-c { }
diff --git a/crates/wit-component/tests/components/link-bare-funcs/lib-foo.wit b/crates/wit-component/tests/components/link-bare-funcs/lib-foo.wit
index 411d20f9..0406d9fb 100644
--- a/crates/wit-component/tests/components/link-bare-funcs/lib-foo.wit
+++ b/crates/wit-component/tests/components/link-bare-funcs/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 world lib-foo {
   import foo1: func();
   import bar: func() -> string;
diff --git a/crates/wit-component/tests/components/link-circular/lib-bar.wit b/crates/wit-component/tests/components/link-circular/lib-bar.wit
index 06bb1f91..ad16c9bf 100644
--- a/crates/wit-component/tests/components/link-circular/lib-bar.wit
+++ b/crates/wit-component/tests/components/link-circular/lib-bar.wit
@@ -1,3 +1,3 @@
-package test:test
+package test:test;
 
 world lib-bar { }
diff --git a/crates/wit-component/tests/components/link-circular/lib-foo.wit b/crates/wit-component/tests/components/link-circular/lib-foo.wit
index 38e89df9..576de434 100644
--- a/crates/wit-component/tests/components/link-circular/lib-foo.wit
+++ b/crates/wit-component/tests/components/link-circular/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/link-dl-openable/dlopen-lib-foo.wit b/crates/wit-component/tests/components/link-dl-openable/dlopen-lib-foo.wit
index c8e34b36..41eb6cf4 100644
--- a/crates/wit-component/tests/components/link-dl-openable/dlopen-lib-foo.wit
+++ b/crates/wit-component/tests/components/link-dl-openable/dlopen-lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/link-got-func/lib-bar.wit b/crates/wit-component/tests/components/link-got-func/lib-bar.wit
index 06bb1f91..ad16c9bf 100644
--- a/crates/wit-component/tests/components/link-got-func/lib-bar.wit
+++ b/crates/wit-component/tests/components/link-got-func/lib-bar.wit
@@ -1,3 +1,3 @@
-package test:test
+package test:test;
 
 world lib-bar { }
diff --git a/crates/wit-component/tests/components/link-got-func/lib-foo.wit b/crates/wit-component/tests/components/link-got-func/lib-foo.wit
index 38e89df9..576de434 100644
--- a/crates/wit-component/tests/components/link-got-func/lib-foo.wit
+++ b/crates/wit-component/tests/components/link-got-func/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/link-stubs/lib-foo.wit b/crates/wit-component/tests/components/link-stubs/lib-foo.wit
index 38e89df9..576de434 100644
--- a/crates/wit-component/tests/components/link-stubs/lib-foo.wit
+++ b/crates/wit-component/tests/components/link-stubs/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/link-weak-import/lib-foo.wit b/crates/wit-component/tests/components/link-weak-import/lib-foo.wit
index 38e89df9..576de434 100644
--- a/crates/wit-component/tests/components/link-weak-import/lib-foo.wit
+++ b/crates/wit-component/tests/components/link-weak-import/lib-foo.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    foo: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/link/lib-bar.wit b/crates/wit-component/tests/components/link/lib-bar.wit
index 021f0115..9cab0b5e 100644
--- a/crates/wit-component/tests/components/link/lib-bar.wit
+++ b/crates/wit-component/tests/components/link/lib-bar.wit
@@ -1,4 +1,4 @@
-package test:test
+package test:test;
 
 interface test {
    bar: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/components/link/lib-c.wit b/crates/wit-component/tests/components/link/lib-c.wit
index c745290f..262c853d 100644
--- a/crates/wit-component/tests/components/link/lib-c.wit
+++ b/crates/wit-component/tests/components/link/lib-c.wit
@@ -1,3 +1,3 @@
-package test:test
+package test:test;
 
 world lib-c { }
diff --git a/crates/wit-component/tests/components/link/lib-foo.wit b/crates/wit-component/tests/components/link/lib-foo.wit
index 0135f07e..3171fc99 100644
--- a/crates/wit-component/tests/components/link/lib-foo.wit
+++ b/crates/wit-component/tests/components/link/lib-foo.wit
@@ -1,3 +1,3 @@
-package test:test
+package test:test;
 
 world lib-foo { }
diff --git a/crates/wit-component/tests/components/link/lib-unused.wit b/crates/wit-component/tests/components/link/lib-unused.wit
index 4a60f725..73d286f7 100644
--- a/crates/wit-component/tests/components/link/lib-unused.wit
+++ b/crates/wit-component/tests/components/link/lib-unused.wit
@@ -1,3 +1,3 @@
-package test:test
+package test:test;
 
 world lib-unused { }
diff --git a/crates/wit-component/tests/components/live-exports-dead-imports/module.wit b/crates/wit-component/tests/components/live-exports-dead-imports/module.wit
index 449fcb38..39f4ce24 100644
--- a/crates/wit-component/tests/components/live-exports-dead-imports/module.wit
+++ b/crates/wit-component/tests/components/live-exports-dead-imports/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   resource r {
diff --git a/crates/wit-component/tests/components/lower-options/module.wit b/crates/wit-component/tests/components/lower-options/module.wit
index d5136341..fac2a606 100644
--- a/crates/wit-component/tests/components/lower-options/module.wit
+++ b/crates/wit-component/tests/components/lower-options/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   record r {
diff --git a/crates/wit-component/tests/components/many-same-names/module.wit b/crates/wit-component/tests/components/many-same-names/module.wit
index f666247b..020baad8 100644
--- a/crates/wit-component/tests/components/many-same-names/module.wit
+++ b/crates/wit-component/tests/components/many-same-names/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface name {
   record r1 {
diff --git a/crates/wit-component/tests/components/no-realloc-required/module.wit b/crates/wit-component/tests/components/no-realloc-required/module.wit
index 8d025350..481eefa2 100644
--- a/crates/wit-component/tests/components/no-realloc-required/module.wit
+++ b/crates/wit-component/tests/components/no-realloc-required/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   import foo: interface {
diff --git a/crates/wit-component/tests/components/post-return/module.wit b/crates/wit-component/tests/components/post-return/module.wit
index ab6cd338..043467c9 100644
--- a/crates/wit-component/tests/components/post-return/module.wit
+++ b/crates/wit-component/tests/components/post-return/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   export a: func() -> string;
diff --git a/crates/wit-component/tests/components/rename-import-interface/module.wit b/crates/wit-component/tests/components/rename-import-interface/module.wit
index 6959e22b..6e1abda3 100644
--- a/crates/wit-component/tests/components/rename-import-interface/module.wit
+++ b/crates/wit-component/tests/components/rename-import-interface/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   the-func: func();
diff --git a/crates/wit-component/tests/components/rename-interface/module.wit b/crates/wit-component/tests/components/rename-interface/module.wit
index 4a3a6410..c237a854 100644
--- a/crates/wit-component/tests/components/rename-interface/module.wit
+++ b/crates/wit-component/tests/components/rename-interface/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   record bar {
diff --git a/crates/wit-component/tests/components/resource-intrinsics-with-just-import/module.wit b/crates/wit-component/tests/components/resource-intrinsics-with-just-import/module.wit
index 046b0699..036ff501 100644
--- a/crates/wit-component/tests/components/resource-intrinsics-with-just-import/module.wit
+++ b/crates/wit-component/tests/components/resource-intrinsics-with-just-import/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world module {
   import foo: interface {
diff --git a/crates/wit-component/tests/components/resource-used-through-import/module.wit b/crates/wit-component/tests/components/resource-used-through-import/module.wit
index fdbf6261..e18f09d8 100644
--- a/crates/wit-component/tests/components/resource-used-through-import/module.wit
+++ b/crates/wit-component/tests/components/resource-used-through-import/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface a {
   resource r;
diff --git a/crates/wit-component/tests/components/resource-using-export/module.wit b/crates/wit-component/tests/components/resource-using-export/module.wit
index 93e84670..3b906f6e 100644
--- a/crates/wit-component/tests/components/resource-using-export/module.wit
+++ b/crates/wit-component/tests/components/resource-using-export/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource r;
diff --git a/crates/wit-component/tests/components/simple/module.wit b/crates/wit-component/tests/components/simple/module.wit
index bf0ad3f7..2ddaa107 100644
--- a/crates/wit-component/tests/components/simple/module.wit
+++ b/crates/wit-component/tests/components/simple/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   export a: func();
diff --git a/crates/wit-component/tests/components/tricky-order/module.wit b/crates/wit-component/tests/components/tricky-order/module.wit
index 54e4abec..040aa395 100644
--- a/crates/wit-component/tests/components/tricky-order/module.wit
+++ b/crates/wit-component/tests/components/tricky-order/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface name1 {
   record name {
diff --git a/crates/wit-component/tests/components/tricky-resources/module.wit b/crates/wit-component/tests/components/tricky-resources/module.wit
index 0a057e3f..523ad87b 100644
--- a/crates/wit-component/tests/components/tricky-resources/module.wit
+++ b/crates/wit-component/tests/components/tricky-resources/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface a {
   resource r;
diff --git a/crates/wit-component/tests/components/tricky-resources2/module.wit b/crates/wit-component/tests/components/tricky-resources2/module.wit
index 443b3bec..8b149b17 100644
--- a/crates/wit-component/tests/components/tricky-resources2/module.wit
+++ b/crates/wit-component/tests/components/tricky-resources2/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface a {
   resource r;
diff --git a/crates/wit-component/tests/components/tricky-resources3/module.wit b/crates/wit-component/tests/components/tricky-resources3/module.wit
index 483accff..36e0edf4 100644
--- a/crates/wit-component/tests/components/tricky-resources3/module.wit
+++ b/crates/wit-component/tests/components/tricky-resources3/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource name;
diff --git a/crates/wit-component/tests/components/tricky-resources4/module.wit b/crates/wit-component/tests/components/tricky-resources4/module.wit
index 080e43ab..7e1f5053 100644
--- a/crates/wit-component/tests/components/tricky-resources4/module.wit
+++ b/crates/wit-component/tests/components/tricky-resources4/module.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface name {
   resource name;
diff --git a/crates/wit-component/tests/components/unused-import/module.wit b/crates/wit-component/tests/components/unused-import/module.wit
index d7e956c8..04ff702d 100644
--- a/crates/wit-component/tests/components/unused-import/module.wit
+++ b/crates/wit-component/tests/components/unused-import/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface bar {}
 
diff --git a/crates/wit-component/tests/components/worlds-with-type-renamings/module.wit b/crates/wit-component/tests/components/worlds-with-type-renamings/module.wit
index 3efe949f..a83a6c0c 100644
--- a/crates/wit-component/tests/components/worlds-with-type-renamings/module.wit
+++ b/crates/wit-component/tests/components/worlds-with-type-renamings/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface i {
   record some-type {
diff --git a/crates/wit-component/tests/components/worlds-with-types/module.wit b/crates/wit-component/tests/components/worlds-with-types/module.wit
index 8c0fd863..d00f403e 100644
--- a/crates/wit-component/tests/components/worlds-with-types/module.wit
+++ b/crates/wit-component/tests/components/worlds-with-types/module.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world module {
   type t = u32;
diff --git a/crates/wit-component/tests/interfaces/console.wit b/crates/wit-component/tests/interfaces/console.wit
index 1c6cbe79..4c9ad252 100644
--- a/crates/wit-component/tests/interfaces/console.wit
+++ b/crates/wit-component/tests/interfaces/console.wit
@@ -1,4 +1,4 @@
-package foo:console
+package foo:console;
 
 interface console {
   log: func(arg: string);
diff --git a/crates/wit-component/tests/interfaces/diamond-disambiguate/join.wit b/crates/wit-component/tests/interfaces/diamond-disambiguate/join.wit
index bde25922..aafd3b53 100644
--- a/crates/wit-component/tests/interfaces/diamond-disambiguate/join.wit
+++ b/crates/wit-component/tests/interfaces/diamond-disambiguate/join.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world w1 {
   import foo: interface {
diff --git a/crates/wit-component/tests/interfaces/diamond.wit b/crates/wit-component/tests/interfaces/diamond.wit
index 17f8efbb..ffbc9c76 100644
--- a/crates/wit-component/tests/interfaces/diamond.wit
+++ b/crates/wit-component/tests/interfaces/diamond.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface shared-items {
   enum the-enum {
diff --git a/crates/wit-component/tests/interfaces/doc-comments/foo.wit b/crates/wit-component/tests/interfaces/doc-comments/foo.wit
index c1ac4d6b..0d7a6f42 100644
--- a/crates/wit-component/tests/interfaces/doc-comments/foo.wit
+++ b/crates/wit-component/tests/interfaces/doc-comments/foo.wit
@@ -1,5 +1,5 @@
-/// package docs
-package foo:foo
+/// package docs;
+package foo:foo;
 
 /// interface docs
 interface coverage-iface {
diff --git a/crates/wit-component/tests/interfaces/doc-comments/foo.wit.print b/crates/wit-component/tests/interfaces/doc-comments/foo.wit.print
index a1ee7008..03708a0d 100644
--- a/crates/wit-component/tests/interfaces/doc-comments/foo.wit.print
+++ b/crates/wit-component/tests/interfaces/doc-comments/foo.wit.print
@@ -1,4 +1,4 @@
-/// package docs
+/// package docs;
 package foo:foo
 
 /// interface docs
diff --git a/crates/wit-component/tests/interfaces/empty.wit b/crates/wit-component/tests/interfaces/empty.wit
index e8739065..0164214b 100644
--- a/crates/wit-component/tests/interfaces/empty.wit
+++ b/crates/wit-component/tests/interfaces/empty.wit
@@ -1,4 +1,4 @@
-package foo:empty
+package foo:empty;
 
 interface empty {}
 
diff --git a/crates/wit-component/tests/interfaces/export-other-packages-interface/deps/the-dep/the-doc.wit b/crates/wit-component/tests/interfaces/export-other-packages-interface/deps/the-dep/the-doc.wit
index d107c858..adc2c4c3 100644
--- a/crates/wit-component/tests/interfaces/export-other-packages-interface/deps/the-dep/the-doc.wit
+++ b/crates/wit-component/tests/interfaces/export-other-packages-interface/deps/the-dep/the-doc.wit
@@ -1,4 +1,4 @@
-package foo:the-dep
+package foo:the-dep;
 
 interface the-interface {
   type t = u8;
diff --git a/crates/wit-component/tests/interfaces/export-other-packages-interface/foo.wit b/crates/wit-component/tests/interfaces/export-other-packages-interface/foo.wit
index f25eaa68..13801e09 100644
--- a/crates/wit-component/tests/interfaces/export-other-packages-interface/foo.wit
+++ b/crates/wit-component/tests/interfaces/export-other-packages-interface/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   export foo:the-dep/the-interface;
diff --git a/crates/wit-component/tests/interfaces/exports.wit b/crates/wit-component/tests/interfaces/exports.wit
index fb225b1c..49d73b6f 100644
--- a/crates/wit-component/tests/interfaces/exports.wit
+++ b/crates/wit-component/tests/interfaces/exports.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   record my-struct {
diff --git a/crates/wit-component/tests/interfaces/flags.wit b/crates/wit-component/tests/interfaces/flags.wit
index 229040ca..9542f96e 100644
--- a/crates/wit-component/tests/interfaces/flags.wit
+++ b/crates/wit-component/tests/interfaces/flags.wit
@@ -1,4 +1,4 @@
-package foo:%flags
+package foo:%flags;
 
 interface imports {
   flags flag1 {
diff --git a/crates/wit-component/tests/interfaces/floats.wit b/crates/wit-component/tests/interfaces/floats.wit
index 40b9b13f..fa75f8b5 100644
--- a/crates/wit-component/tests/interfaces/floats.wit
+++ b/crates/wit-component/tests/interfaces/floats.wit
@@ -1,4 +1,4 @@
-package foo:floats
+package foo:floats;
 
 interface floats {
   float32-param: func(x: float32);
diff --git a/crates/wit-component/tests/interfaces/foreign-use-chain/deps/bar/bar.wit b/crates/wit-component/tests/interfaces/foreign-use-chain/deps/bar/bar.wit
index ad6fb099..a6b7de13 100644
--- a/crates/wit-component/tests/interfaces/foreign-use-chain/deps/bar/bar.wit
+++ b/crates/wit-component/tests/interfaces/foreign-use-chain/deps/bar/bar.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface bar {
   use the-interface.{the-type as bar};
diff --git a/crates/wit-component/tests/interfaces/foreign-use-chain/foo.wit b/crates/wit-component/tests/interfaces/foreign-use-chain/foo.wit
index 461bcaf9..c7b87f7b 100644
--- a/crates/wit-component/tests/interfaces/foreign-use-chain/foo.wit
+++ b/crates/wit-component/tests/interfaces/foreign-use-chain/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo:bar/bar;
diff --git a/crates/wit-component/tests/interfaces/import-and-export.wit b/crates/wit-component/tests/interfaces/import-and-export.wit
index ea2aa1be..3d84154a 100644
--- a/crates/wit-component/tests/interfaces/import-and-export.wit
+++ b/crates/wit-component/tests/interfaces/import-and-export.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   foo: func();
diff --git a/crates/wit-component/tests/interfaces/integers.wit b/crates/wit-component/tests/interfaces/integers.wit
index 91452f8b..ae1cb7c2 100644
--- a/crates/wit-component/tests/interfaces/integers.wit
+++ b/crates/wit-component/tests/interfaces/integers.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface integers {
   a1: func(x: u8);
diff --git a/crates/wit-component/tests/interfaces/lists.wit b/crates/wit-component/tests/interfaces/lists.wit
index 20660c6d..6d192250 100644
--- a/crates/wit-component/tests/interfaces/lists.wit
+++ b/crates/wit-component/tests/interfaces/lists.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface lists {
   record other-record {
diff --git a/crates/wit-component/tests/interfaces/multi-doc/a.wit b/crates/wit-component/tests/interfaces/multi-doc/a.wit
index 1d4b5b2d..a2a494bb 100644
--- a/crates/wit-component/tests/interfaces/multi-doc/a.wit
+++ b/crates/wit-component/tests/interfaces/multi-doc/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   use b.{the-type};
diff --git a/crates/wit-component/tests/interfaces/multiple-use.wit b/crates/wit-component/tests/interfaces/multiple-use.wit
index 2a56377e..96489992 100644
--- a/crates/wit-component/tests/interfaces/multiple-use.wit
+++ b/crates/wit-component/tests/interfaces/multiple-use.wit
@@ -1,4 +1,4 @@
-package foo:multiuse
+package foo:multiuse;
 
 interface foo {
   type t1 = u8;
diff --git a/crates/wit-component/tests/interfaces/pkg-use-chain/def.wit b/crates/wit-component/tests/interfaces/pkg-use-chain/def.wit
index 2956f774..0d98bd3d 100644
--- a/crates/wit-component/tests/interfaces/pkg-use-chain/def.wit
+++ b/crates/wit-component/tests/interfaces/pkg-use-chain/def.wit
@@ -1,4 +1,4 @@
-package foo:chain
+package foo:chain;
 
 interface def {
   use a.{a};
diff --git a/crates/wit-component/tests/interfaces/pkg-use-chain/the-use.wit b/crates/wit-component/tests/interfaces/pkg-use-chain/the-use.wit
index 6550771a..84694725 100644
--- a/crates/wit-component/tests/interfaces/pkg-use-chain/the-use.wit
+++ b/crates/wit-component/tests/interfaces/pkg-use-chain/the-use.wit
@@ -1,4 +1,4 @@
-package foo:chain
+package foo:chain;
 
 interface foo {
   use def.{name};
diff --git a/crates/wit-component/tests/interfaces/pkg-use-chain2/foo.wit b/crates/wit-component/tests/interfaces/pkg-use-chain2/foo.wit
index 8022df19..a906a59a 100644
--- a/crates/wit-component/tests/interfaces/pkg-use-chain2/foo.wit
+++ b/crates/wit-component/tests/interfaces/pkg-use-chain2/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   use bar.{the-name};
diff --git a/crates/wit-component/tests/interfaces/preserve-dep-type-order/deps/dep/foo.wit b/crates/wit-component/tests/interfaces/preserve-dep-type-order/deps/dep/foo.wit
index 4ffbee79..1e2b6181 100644
--- a/crates/wit-component/tests/interfaces/preserve-dep-type-order/deps/dep/foo.wit
+++ b/crates/wit-component/tests/interfaces/preserve-dep-type-order/deps/dep/foo.wit
@@ -1,4 +1,4 @@
-package foo:dep
+package foo:dep;
 
 interface foo {
   enum a {
diff --git a/crates/wit-component/tests/interfaces/preserve-dep-type-order/foo.wit b/crates/wit-component/tests/interfaces/preserve-dep-type-order/foo.wit
index 698ebd12..d82e5b1e 100644
--- a/crates/wit-component/tests/interfaces/preserve-dep-type-order/foo.wit
+++ b/crates/wit-component/tests/interfaces/preserve-dep-type-order/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   use foo:dep/foo.{ty};
diff --git a/crates/wit-component/tests/interfaces/preserve-foreign-reexport/deps/my-dep/my-doc.wit b/crates/wit-component/tests/interfaces/preserve-foreign-reexport/deps/my-dep/my-doc.wit
index 3c5e8206..27b98fb2 100644
--- a/crates/wit-component/tests/interfaces/preserve-foreign-reexport/deps/my-dep/my-doc.wit
+++ b/crates/wit-component/tests/interfaces/preserve-foreign-reexport/deps/my-dep/my-doc.wit
@@ -1,4 +1,4 @@
-package foo:my-dep
+package foo:my-dep;
 
 interface my-interface {
   record foo {
diff --git a/crates/wit-component/tests/interfaces/preserve-foreign-reexport/foo.wit b/crates/wit-component/tests/interfaces/preserve-foreign-reexport/foo.wit
index 5444ebd5..24054d08 100644
--- a/crates/wit-component/tests/interfaces/preserve-foreign-reexport/foo.wit
+++ b/crates/wit-component/tests/interfaces/preserve-foreign-reexport/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   export foo:my-dep/my-interface;
diff --git a/crates/wit-component/tests/interfaces/print-keyword.wit b/crates/wit-component/tests/interfaces/print-keyword.wit
index 1c93dc6f..4f0670f3 100644
--- a/crates/wit-component/tests/interfaces/print-keyword.wit
+++ b/crates/wit-component/tests/interfaces/print-keyword.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface %interface {
   type %type = u32;
diff --git a/crates/wit-component/tests/interfaces/records.wit b/crates/wit-component/tests/interfaces/records.wit
index f687aa4c..15639dfd 100644
--- a/crates/wit-component/tests/interfaces/records.wit
+++ b/crates/wit-component/tests/interfaces/records.wit
@@ -1,4 +1,4 @@
-package foo:records
+package foo:records;
 
 interface records {
   record single {
diff --git a/crates/wit-component/tests/interfaces/reference-out-of-order.wit b/crates/wit-component/tests/interfaces/reference-out-of-order.wit
index e9a306fd..5b75fc20 100644
--- a/crates/wit-component/tests/interfaces/reference-out-of-order.wit
+++ b/crates/wit-component/tests/interfaces/reference-out-of-order.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   a: func(x: r);
diff --git a/crates/wit-component/tests/interfaces/resources.wit b/crates/wit-component/tests/interfaces/resources.wit
index 99c138f8..9558b6ba 100644
--- a/crates/wit-component/tests/interfaces/resources.wit
+++ b/crates/wit-component/tests/interfaces/resources.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource bar {
diff --git a/crates/wit-component/tests/interfaces/simple-deps/deps/some-dep/types.wit b/crates/wit-component/tests/interfaces/simple-deps/deps/some-dep/types.wit
index 6d69f128..8084fdab 100644
--- a/crates/wit-component/tests/interfaces/simple-deps/deps/some-dep/types.wit
+++ b/crates/wit-component/tests/interfaces/simple-deps/deps/some-dep/types.wit
@@ -1,4 +1,4 @@
-package foo:some-dep
+package foo:some-dep;
 
 interface types {
   type some-type = u8;
diff --git a/crates/wit-component/tests/interfaces/simple-deps/foo.wit b/crates/wit-component/tests/interfaces/simple-deps/foo.wit
index 898b316c..3c1e96fc 100644
--- a/crates/wit-component/tests/interfaces/simple-deps/foo.wit
+++ b/crates/wit-component/tests/interfaces/simple-deps/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 interface foo {
   use foo:some-dep/types.{some-type};
 }
diff --git a/crates/wit-component/tests/interfaces/simple-multi/foo.wit b/crates/wit-component/tests/interfaces/simple-multi/foo.wit
index f8a9027d..21bf4083 100644
--- a/crates/wit-component/tests/interfaces/simple-multi/foo.wit
+++ b/crates/wit-component/tests/interfaces/simple-multi/foo.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
diff --git a/crates/wit-component/tests/interfaces/simple-use.wit b/crates/wit-component/tests/interfaces/simple-use.wit
index 1d65d1b9..15cb990c 100644
--- a/crates/wit-component/tests/interfaces/simple-use.wit
+++ b/crates/wit-component/tests/interfaces/simple-use.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface types {
   enum level {
diff --git a/crates/wit-component/tests/interfaces/simple-world.wit b/crates/wit-component/tests/interfaces/simple-world.wit
index e703a783..e5459b89 100644
--- a/crates/wit-component/tests/interfaces/simple-world.wit
+++ b/crates/wit-component/tests/interfaces/simple-world.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world the-world {
   import console;
diff --git a/crates/wit-component/tests/interfaces/single-named-result.wit b/crates/wit-component/tests/interfaces/single-named-result.wit
index 6a0413ef..980b766b 100644
--- a/crates/wit-component/tests/interfaces/single-named-result.wit
+++ b/crates/wit-component/tests/interfaces/single-named-result.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   a: func() -> (a: u32);
diff --git a/crates/wit-component/tests/interfaces/type-alias.wit b/crates/wit-component/tests/interfaces/type-alias.wit
index b284f8f1..11bb6b2f 100644
--- a/crates/wit-component/tests/interfaces/type-alias.wit
+++ b/crates/wit-component/tests/interfaces/type-alias.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type a = u8;
diff --git a/crates/wit-component/tests/interfaces/type-alias2.wit b/crates/wit-component/tests/interfaces/type-alias2.wit
index 713c8886..5c8156fa 100644
--- a/crates/wit-component/tests/interfaces/type-alias2.wit
+++ b/crates/wit-component/tests/interfaces/type-alias2.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   flags a {
diff --git a/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/a/the-name.wit b/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/a/the-name.wit
index 9ea9033e..38334b3f 100644
--- a/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/a/the-name.wit
+++ b/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/a/the-name.wit
@@ -1,4 +1,4 @@
-package foo:a
+package foo:a;
 interface the-name {
   type ty = u8;
 }
diff --git a/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/b/the-name.wit b/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/b/the-name.wit
index f07e23e4..ca32564d 100644
--- a/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/b/the-name.wit
+++ b/crates/wit-component/tests/interfaces/upstream-deps-same-name/deps/b/the-name.wit
@@ -1,4 +1,4 @@
-package foo:b
+package foo:b;
 interface the-name {
   type ty = u8;
 }
diff --git a/crates/wit-component/tests/interfaces/upstream-deps-same-name/foo.wit b/crates/wit-component/tests/interfaces/upstream-deps-same-name/foo.wit
index 5e723872..3c8e180b 100644
--- a/crates/wit-component/tests/interfaces/upstream-deps-same-name/foo.wit
+++ b/crates/wit-component/tests/interfaces/upstream-deps-same-name/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   use foo:a/the-name.{ty};
diff --git a/crates/wit-component/tests/interfaces/use-chain.wit b/crates/wit-component/tests/interfaces/use-chain.wit
index 48950c70..11cab91b 100644
--- a/crates/wit-component/tests/interfaces/use-chain.wit
+++ b/crates/wit-component/tests/interfaces/use-chain.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type a = u32;
diff --git a/crates/wit-component/tests/interfaces/use-for-type.wit b/crates/wit-component/tests/interfaces/use-for-type.wit
index eb17aa84..d090d61e 100644
--- a/crates/wit-component/tests/interfaces/use-for-type.wit
+++ b/crates/wit-component/tests/interfaces/use-for-type.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
 }
diff --git a/crates/wit-component/tests/interfaces/variants.wit b/crates/wit-component/tests/interfaces/variants.wit
index 2c8794cf..f0374769 100644
--- a/crates/wit-component/tests/interfaces/variants.wit
+++ b/crates/wit-component/tests/interfaces/variants.wit
@@ -1,4 +1,4 @@
-package foo:variants
+package foo:variants;
 
 interface variants {
   enum e1 {
diff --git a/crates/wit-component/tests/interfaces/wasi-http/deps/io/streams.wit b/crates/wit-component/tests/interfaces/wasi-http/deps/io/streams.wit
index bad15fc9..56bf8f82 100644
--- a/crates/wit-component/tests/interfaces/wasi-http/deps/io/streams.wit
+++ b/crates/wit-component/tests/interfaces/wasi-http/deps/io/streams.wit
@@ -1,4 +1,4 @@
-package wasi:io
+package wasi:io;
 
 /// WASI I/O is an I/O abstraction API which is currently focused on providing
 /// stream types.
diff --git a/crates/wit-component/tests/interfaces/wasi-http/deps/logging/handler.wit b/crates/wit-component/tests/interfaces/wasi-http/deps/logging/handler.wit
index 0a7d085e..83f3fba5 100644
--- a/crates/wit-component/tests/interfaces/wasi-http/deps/logging/handler.wit
+++ b/crates/wit-component/tests/interfaces/wasi-http/deps/logging/handler.wit
@@ -1,4 +1,4 @@
-package wasi:logging
+package wasi:logging;
 
 /// WASI Logging is a logging API intended to let users emit log messages with
 /// simple priority levels and context values.
diff --git a/crates/wit-component/tests/interfaces/wasi-http/deps/poll/poll.wit b/crates/wit-component/tests/interfaces/wasi-http/deps/poll/poll.wit
index af64de56..1b9111cd 100644
--- a/crates/wit-component/tests/interfaces/wasi-http/deps/poll/poll.wit
+++ b/crates/wit-component/tests/interfaces/wasi-http/deps/poll/poll.wit
@@ -1,4 +1,4 @@
-package wasi:poll
+package wasi:poll;
 
 /// A poll API intended to let users wait for I/O events on multiple handles
 /// at once.
diff --git a/crates/wit-component/tests/interfaces/wasi-http/deps/random/random.wit b/crates/wit-component/tests/interfaces/wasi-http/deps/random/random.wit
index c7fb521b..5746dedc 100644
--- a/crates/wit-component/tests/interfaces/wasi-http/deps/random/random.wit
+++ b/crates/wit-component/tests/interfaces/wasi-http/deps/random/random.wit
@@ -1,4 +1,4 @@
-package wasi:random
+package wasi:random;
 
 /// WASI Random is a random data API.
 ///
diff --git a/crates/wit-component/tests/interfaces/wasi-http/types.wit b/crates/wit-component/tests/interfaces/wasi-http/types.wit
index f303add7..77f07f7f 100644
--- a/crates/wit-component/tests/interfaces/wasi-http/types.wit
+++ b/crates/wit-component/tests/interfaces/wasi-http/types.wit
@@ -1,4 +1,4 @@
-package wasi:http
+package wasi:http;
 
 // The `wasi:http/types` interface is meant to be imported by components to
 // define the HTTP resource types and operations used by the component's
diff --git a/crates/wit-component/tests/interfaces/world-inline-interface.wit b/crates/wit-component/tests/interfaces/world-inline-interface.wit
index 7c4a6338..94ec5d1b 100644
--- a/crates/wit-component/tests/interfaces/world-inline-interface.wit
+++ b/crates/wit-component/tests/interfaces/world-inline-interface.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world has-inline {
   import foo: interface {}
diff --git a/crates/wit-component/tests/interfaces/world-pkg-conflict/foo.wit b/crates/wit-component/tests/interfaces/world-pkg-conflict/foo.wit
index f2b428eb..1233bad4 100644
--- a/crates/wit-component/tests/interfaces/world-pkg-conflict/foo.wit
+++ b/crates/wit-component/tests/interfaces/world-pkg-conflict/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world c {
 
diff --git a/crates/wit-component/tests/interfaces/world-top-level.wit b/crates/wit-component/tests/interfaces/world-top-level.wit
index 47f2ecb3..e964709f 100644
--- a/crates/wit-component/tests/interfaces/world-top-level.wit
+++ b/crates/wit-component/tests/interfaces/world-top-level.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo: func();
diff --git a/crates/wit-component/tests/interfaces/worlds-with-types.wit b/crates/wit-component/tests/interfaces/worlds-with-types.wit
index e5d4316c..6e315792 100644
--- a/crates/wit-component/tests/interfaces/worlds-with-types.wit
+++ b/crates/wit-component/tests/interfaces/worlds-with-types.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world simple {
   record foo {
diff --git a/crates/wit-component/tests/linking.rs b/crates/wit-component/tests/linking.rs
index 2e068a13..7b7d0ac3 100644
--- a/crates/wit-component/tests/linking.rs
+++ b/crates/wit-component/tests/linking.rs
@@ -125,7 +125,7 @@ const LIBC: &str = r#"
 "#;
 
 const WIT: &str = r#"
-package test:test
+package test:test;
 
 interface test {
    bar: func(v: s32) -> s32;
diff --git a/crates/wit-component/tests/merge/bad-interface1/from/a.wit b/crates/wit-component/tests/merge/bad-interface1/from/a.wit
index 52d03da0..7815d4c6 100644
--- a/crates/wit-component/tests/merge/bad-interface1/from/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface1/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-interface1/from/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-interface1/from/deps/foo/a.wit
index 61a7d22e..0ceaac52 100644
--- a/crates/wit-component/tests/merge/bad-interface1/from/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface1/from/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-interface1/into/a.wit b/crates/wit-component/tests/merge/bad-interface1/into/a.wit
index 4478d512..3ba73ddd 100644
--- a/crates/wit-component/tests/merge/bad-interface1/into/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface1/into/a.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 
 interface a {
   use foo:foo/a.{b};
diff --git a/crates/wit-component/tests/merge/bad-interface1/into/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-interface1/into/deps/foo/a.wit
index 67f2e8d3..d4335c93 100644
--- a/crates/wit-component/tests/merge/bad-interface1/into/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface1/into/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type b = s32;
diff --git a/crates/wit-component/tests/merge/bad-interface2/from/a.wit b/crates/wit-component/tests/merge/bad-interface2/from/a.wit
index 87937b84..74e6d0c5 100644
--- a/crates/wit-component/tests/merge/bad-interface2/from/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface2/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 
 interface a {
   use foo:foo/a.{t};
diff --git a/crates/wit-component/tests/merge/bad-interface2/from/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-interface2/from/deps/foo/a.wit
index e25cc43a..cac06d9f 100644
--- a/crates/wit-component/tests/merge/bad-interface2/from/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface2/from/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type t = u32;
diff --git a/crates/wit-component/tests/merge/bad-interface2/into/a.wit b/crates/wit-component/tests/merge/bad-interface2/into/a.wit
index 246efaf5..d1179471 100644
--- a/crates/wit-component/tests/merge/bad-interface2/into/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface2/into/a.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 
 interface a {
   use foo:foo/a.{t};
diff --git a/crates/wit-component/tests/merge/bad-interface2/into/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-interface2/into/deps/foo/a.wit
index 319059cd..1163885a 100644
--- a/crates/wit-component/tests/merge/bad-interface2/into/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-interface2/into/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type t = u32;
diff --git a/crates/wit-component/tests/merge/bad-world1/from/a.wit b/crates/wit-component/tests/merge/bad-world1/from/a.wit
index 444f52f0..6abdb6dd 100644
--- a/crates/wit-component/tests/merge/bad-world1/from/a.wit
+++ b/crates/wit-component/tests/merge/bad-world1/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 interface a {
   use foo:foo/a.{a};
 }
diff --git a/crates/wit-component/tests/merge/bad-world1/from/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world1/from/deps/foo/a.wit
index e377ebd2..d0243ca0 100644
--- a/crates/wit-component/tests/merge/bad-world1/from/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world1/from/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world1/into/a.wit b/crates/wit-component/tests/merge/bad-world1/into/a.wit
index 37d4450e..902cda15 100644
--- a/crates/wit-component/tests/merge/bad-world1/into/a.wit
+++ b/crates/wit-component/tests/merge/bad-world1/into/a.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 interface a {
   use foo:foo/a.{a};
 }
diff --git a/crates/wit-component/tests/merge/bad-world1/into/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world1/into/deps/foo/a.wit
index e61f0092..3f7ebb72 100644
--- a/crates/wit-component/tests/merge/bad-world1/into/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world1/into/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world2/from/a.wit b/crates/wit-component/tests/merge/bad-world2/from/a.wit
index 52d03da0..7815d4c6 100644
--- a/crates/wit-component/tests/merge/bad-world2/from/a.wit
+++ b/crates/wit-component/tests/merge/bad-world2/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world2/from/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world2/from/deps/foo/a.wit
index 326984af..b7e7ada1 100644
--- a/crates/wit-component/tests/merge/bad-world2/from/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world2/from/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world2/into/a.wit b/crates/wit-component/tests/merge/bad-world2/into/a.wit
index ad72655e..3c1df58c 100644
--- a/crates/wit-component/tests/merge/bad-world2/into/a.wit
+++ b/crates/wit-component/tests/merge/bad-world2/into/a.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world2/into/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world2/into/deps/foo/a.wit
index e61f0092..3f7ebb72 100644
--- a/crates/wit-component/tests/merge/bad-world2/into/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world2/into/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world3/from/a.wit b/crates/wit-component/tests/merge/bad-world3/from/a.wit
index 52d03da0..7815d4c6 100644
--- a/crates/wit-component/tests/merge/bad-world3/from/a.wit
+++ b/crates/wit-component/tests/merge/bad-world3/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world3/from/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world3/from/deps/foo/a.wit
index 326984af..b7e7ada1 100644
--- a/crates/wit-component/tests/merge/bad-world3/from/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world3/from/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world3/into/a.wit b/crates/wit-component/tests/merge/bad-world3/into/a.wit
index ad72655e..3c1df58c 100644
--- a/crates/wit-component/tests/merge/bad-world3/into/a.wit
+++ b/crates/wit-component/tests/merge/bad-world3/into/a.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world3/into/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world3/into/deps/foo/a.wit
index 1faf26a6..78b5ed58 100644
--- a/crates/wit-component/tests/merge/bad-world3/into/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world3/into/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world4/from/a.wit b/crates/wit-component/tests/merge/bad-world4/from/a.wit
index 52d03da0..7815d4c6 100644
--- a/crates/wit-component/tests/merge/bad-world4/from/a.wit
+++ b/crates/wit-component/tests/merge/bad-world4/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world4/from/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world4/from/deps/foo/a.wit
index 9986d78a..f9babcd6 100644
--- a/crates/wit-component/tests/merge/bad-world4/from/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world4/from/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world4/into/a.wit b/crates/wit-component/tests/merge/bad-world4/into/a.wit
index ad72655e..3c1df58c 100644
--- a/crates/wit-component/tests/merge/bad-world4/into/a.wit
+++ b/crates/wit-component/tests/merge/bad-world4/into/a.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world4/into/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world4/into/deps/foo/a.wit
index 1faf26a6..78b5ed58 100644
--- a/crates/wit-component/tests/merge/bad-world4/into/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world4/into/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world5/from/a.wit b/crates/wit-component/tests/merge/bad-world5/from/a.wit
index 52d03da0..7815d4c6 100644
--- a/crates/wit-component/tests/merge/bad-world5/from/a.wit
+++ b/crates/wit-component/tests/merge/bad-world5/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world5/from/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world5/from/deps/foo/a.wit
index 96aa6531..791d5b6e 100644
--- a/crates/wit-component/tests/merge/bad-world5/from/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world5/from/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/bad-world5/into/a.wit b/crates/wit-component/tests/merge/bad-world5/into/a.wit
index ad72655e..3c1df58c 100644
--- a/crates/wit-component/tests/merge/bad-world5/into/a.wit
+++ b/crates/wit-component/tests/merge/bad-world5/into/a.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 
 interface a {
   use foo:foo/a.{a};
diff --git a/crates/wit-component/tests/merge/bad-world5/into/deps/foo/a.wit b/crates/wit-component/tests/merge/bad-world5/into/deps/foo/a.wit
index e61f0092..3f7ebb72 100644
--- a/crates/wit-component/tests/merge/bad-world5/into/deps/foo/a.wit
+++ b/crates/wit-component/tests/merge/bad-world5/into/deps/foo/a.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/success/from/a.wit b/crates/wit-component/tests/merge/success/from/a.wit
index 65e96468..d181c7f5 100644
--- a/crates/wit-component/tests/merge/success/from/a.wit
+++ b/crates/wit-component/tests/merge/success/from/a.wit
@@ -1,4 +1,4 @@
-package foo:%from
+package foo:%from;
 
 interface a {
   use foo:foo/only-from.{r};
diff --git a/crates/wit-component/tests/merge/success/from/deps/foo/shared.wit b/crates/wit-component/tests/merge/success/from/deps/foo/shared.wit
index c91a088c..a3b65ebe 100644
--- a/crates/wit-component/tests/merge/success/from/deps/foo/shared.wit
+++ b/crates/wit-component/tests/merge/success/from/deps/foo/shared.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface shared-only-from {
   variant v {
diff --git a/crates/wit-component/tests/merge/success/from/deps/only-from-dep/a.wit b/crates/wit-component/tests/merge/success/from/deps/only-from-dep/a.wit
index 65380737..0f119109 100644
--- a/crates/wit-component/tests/merge/success/from/deps/only-from-dep/a.wit
+++ b/crates/wit-component/tests/merge/success/from/deps/only-from-dep/a.wit
@@ -1,4 +1,4 @@
-package foo:only-from-dep
+package foo:only-from-dep;
 
 interface a {
   type a = u32;
diff --git a/crates/wit-component/tests/merge/success/into/b.wit b/crates/wit-component/tests/merge/success/into/b.wit
index 5a88548e..ae368120 100644
--- a/crates/wit-component/tests/merge/success/into/b.wit
+++ b/crates/wit-component/tests/merge/success/into/b.wit
@@ -1,4 +1,4 @@
-package foo:into
+package foo:into;
 
 interface b {
   use foo:foo/only-into.{r};
diff --git a/crates/wit-component/tests/merge/success/into/deps/foo/shared.wit b/crates/wit-component/tests/merge/success/into/deps/foo/shared.wit
index d16665dd..bd9e90c0 100644
--- a/crates/wit-component/tests/merge/success/into/deps/foo/shared.wit
+++ b/crates/wit-component/tests/merge/success/into/deps/foo/shared.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface shared-only-into {
   variant v {
diff --git a/crates/wit-component/tests/targets/error-missing-export/test.wit b/crates/wit-component/tests/targets/error-missing-export/test.wit
index d8ef27f9..d9112a62 100644
--- a/crates/wit-component/tests/targets/error-missing-export/test.wit
+++ b/crates/wit-component/tests/targets/error-missing-export/test.wit
@@ -1,4 +1,4 @@
-package test:foo
+package test:foo;
 
 interface bar {
     f: func();
diff --git a/crates/wit-component/tests/targets/error-missing-import/test.wit b/crates/wit-component/tests/targets/error-missing-import/test.wit
index b5d59d23..be6d4b91 100644
--- a/crates/wit-component/tests/targets/error-missing-import/test.wit
+++ b/crates/wit-component/tests/targets/error-missing-import/test.wit
@@ -1,4 +1,4 @@
-package test:foo
+package test:foo;
 
 interface foo {
     f: func();
diff --git a/crates/wit-component/tests/targets/success-empty/test.wit b/crates/wit-component/tests/targets/success-empty/test.wit
index 496cde79..cd086dbd 100644
--- a/crates/wit-component/tests/targets/success-empty/test.wit
+++ b/crates/wit-component/tests/targets/success-empty/test.wit
@@ -1,4 +1,4 @@
-package test:foo
+package test:foo;
 
 interface foo {
     f: func();
diff --git a/crates/wit-component/tests/targets/success/test.wit b/crates/wit-component/tests/targets/success/test.wit
index e01ef415..d6c437c7 100644
--- a/crates/wit-component/tests/targets/success/test.wit
+++ b/crates/wit-component/tests/targets/success/test.wit
@@ -1,4 +1,4 @@
-package test:foo
+package test:foo;
 
 interface bar {
     f: func();
diff --git a/crates/wit-parser/tests/ui/comments.wit b/crates/wit-parser/tests/ui/comments.wit
index a46dd7b0..46545453 100644
--- a/crates/wit-parser/tests/ui/comments.wit
+++ b/crates/wit-parser/tests/ui/comments.wit
@@ -1,4 +1,4 @@
-package foo:comments
+package foo:comments;
 
 // hello
 // world
diff --git a/crates/wit-parser/tests/ui/complex-include/deps/bar/root.wit b/crates/wit-parser/tests/ui/complex-include/deps/bar/root.wit
index 930dfb19..cbf49936 100644
--- a/crates/wit-parser/tests/ui/complex-include/deps/bar/root.wit
+++ b/crates/wit-parser/tests/ui/complex-include/deps/bar/root.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface a {}
 interface b {}
diff --git a/crates/wit-parser/tests/ui/complex-include/deps/baz/root.wit b/crates/wit-parser/tests/ui/complex-include/deps/baz/root.wit
index a6b145ff..ac0085ce 100644
--- a/crates/wit-parser/tests/ui/complex-include/deps/baz/root.wit
+++ b/crates/wit-parser/tests/ui/complex-include/deps/baz/root.wit
@@ -1,4 +1,4 @@
-package foo:baz
+package foo:baz;
 
 interface a {}
 interface b {}
diff --git a/crates/wit-parser/tests/ui/complex-include/root.wit b/crates/wit-parser/tests/ui/complex-include/root.wit
index 4a545b8d..81020248 100644
--- a/crates/wit-parser/tests/ui/complex-include/root.wit
+++ b/crates/wit-parser/tests/ui/complex-include/root.wit
@@ -1,4 +1,4 @@
-package foo:root
+package foo:root;
 
 interface ai {}
 interface bi {}
diff --git a/crates/wit-parser/tests/ui/cross-package-resource/deps/foo/foo.wit b/crates/wit-parser/tests/ui/cross-package-resource/deps/foo/foo.wit
index 61040e12..a9c5658d 100644
--- a/crates/wit-parser/tests/ui/cross-package-resource/deps/foo/foo.wit
+++ b/crates/wit-parser/tests/ui/cross-package-resource/deps/foo/foo.wit
@@ -1,4 +1,4 @@
-package some:dep
+package some:dep;
 
 interface foo {
   resource r;
diff --git a/crates/wit-parser/tests/ui/cross-package-resource/foo.wit b/crates/wit-parser/tests/ui/cross-package-resource/foo.wit
index bb14898e..030dabab 100644
--- a/crates/wit-parser/tests/ui/cross-package-resource/foo.wit
+++ b/crates/wit-parser/tests/ui/cross-package-resource/foo.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   use some:dep/foo.{r};
diff --git a/crates/wit-parser/tests/ui/diamond1/deps/dep1/types.wit b/crates/wit-parser/tests/ui/diamond1/deps/dep1/types.wit
index 9e7afb30..4c84420d 100644
--- a/crates/wit-parser/tests/ui/diamond1/deps/dep1/types.wit
+++ b/crates/wit-parser/tests/ui/diamond1/deps/dep1/types.wit
@@ -1,2 +1,2 @@
-package foo:dep1
+package foo:dep1;
 interface types {}
diff --git a/crates/wit-parser/tests/ui/diamond1/deps/dep2/types.wit b/crates/wit-parser/tests/ui/diamond1/deps/dep2/types.wit
index 8825ffb0..b7cf9466 100644
--- a/crates/wit-parser/tests/ui/diamond1/deps/dep2/types.wit
+++ b/crates/wit-parser/tests/ui/diamond1/deps/dep2/types.wit
@@ -1,2 +1,2 @@
-package foo:dep2
+package foo:dep2;
 interface types {}
diff --git a/crates/wit-parser/tests/ui/diamond1/join.wit b/crates/wit-parser/tests/ui/diamond1/join.wit
index 21eb911d..70d8759e 100644
--- a/crates/wit-parser/tests/ui/diamond1/join.wit
+++ b/crates/wit-parser/tests/ui/diamond1/join.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo:dep1/types;
diff --git a/crates/wit-parser/tests/ui/disambiguate-diamond/world.wit b/crates/wit-parser/tests/ui/disambiguate-diamond/world.wit
index c7714eb6..837d08fa 100644
--- a/crates/wit-parser/tests/ui/disambiguate-diamond/world.wit
+++ b/crates/wit-parser/tests/ui/disambiguate-diamond/world.wit
@@ -1,4 +1,4 @@
-package foo:diamond
+package foo:diamond;
 
 world foo {
   import foo: interface {
diff --git a/crates/wit-parser/tests/ui/embedded.wit.md b/crates/wit-parser/tests/ui/embedded.wit.md
index 618dd277..0a1e8082 100644
--- a/crates/wit-parser/tests/ui/embedded.wit.md
+++ b/crates/wit-parser/tests/ui/embedded.wit.md
@@ -3,7 +3,7 @@
 containing stuff, and also some code blocks, wit and other.
 
 ```wit
-package foo:foo
+package foo:foo;
 
 interface foo {
 ```
diff --git a/crates/wit-parser/tests/ui/empty.wit b/crates/wit-parser/tests/ui/empty.wit
index cfc0ac5b..bfb0e982 100644
--- a/crates/wit-parser/tests/ui/empty.wit
+++ b/crates/wit-parser/tests/ui/empty.wit
@@ -1,1 +1,1 @@
-package foo:empty
+package foo:empty;
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit
index dc584c63..a6fe3bac 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit
@@ -1,3 +1,3 @@
-package foo:another-pkg
+package foo:another-pkg;
 
 interface other-interface {}
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/corp/saas.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/corp/saas.wit
index f476b526..9e913cd5 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/corp/saas.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/corp/saas.wit
@@ -1,4 +1,4 @@
-package foo:corp
+package foo:corp;
 
 interface saas {
 }
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit
index ddeeab87..bfb1ba6c 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit
@@ -1,2 +1,2 @@
-package foo:different-pkg
+package foo:different-pkg;
 interface i {}
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit
index 957215de..c33f4551 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit
@@ -1,4 +1,4 @@
-package foo:foreign-pkg
+package foo:foreign-pkg;
 
 interface the-default {
   type some-type = u32;
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit
index ff7e0c03..ba4990fd 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit
@@ -1,4 +1,4 @@
-package foo:some-pkg
+package foo:some-pkg;
 
 interface the-default {
   type from-default = string;
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/clocks.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/clocks.wit
index abdd2227..0e340852 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/clocks.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/clocks.wit
@@ -1,4 +1,4 @@
-package foo:wasi
+package foo:wasi;
 
 interface clocks {
   type timestamp = u64;
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit
index 1ed63e3d..97be222b 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit
@@ -1,4 +1,4 @@
-package foo:wasi
+package foo:wasi;
 
 interface filesystem {
   record stat {
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/wasi.wit b/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/wasi.wit
index 18d2d3d4..edcf06f1 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/wasi.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/deps/wasi/wasi.wit
@@ -1,4 +1,4 @@
-package foo:wasi
+package foo:wasi;
 
 world wasi {
     import filesystem;
diff --git a/crates/wit-parser/tests/ui/foreign-deps-union/root.wit b/crates/wit-parser/tests/ui/foreign-deps-union/root.wit
index 617f66b5..eac08d7d 100644
--- a/crates/wit-parser/tests/ui/foreign-deps-union/root.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps-union/root.wit
@@ -1,4 +1,4 @@
-package foo:root
+package foo:root;
 
 interface foo {
   use foo:wasi/clocks.{timestamp};
diff --git a/crates/wit-parser/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit b/crates/wit-parser/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit
index dc584c63..a6fe3bac 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit
@@ -1,3 +1,3 @@
-package foo:another-pkg
+package foo:another-pkg;
 
 interface other-interface {}
diff --git a/crates/wit-parser/tests/ui/foreign-deps/deps/corp/saas.wit b/crates/wit-parser/tests/ui/foreign-deps/deps/corp/saas.wit
index f476b526..9e913cd5 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/deps/corp/saas.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/deps/corp/saas.wit
@@ -1,4 +1,4 @@
-package foo:corp
+package foo:corp;
 
 interface saas {
 }
diff --git a/crates/wit-parser/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit b/crates/wit-parser/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit
index ddeeab87..bfb1ba6c 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit
@@ -1,2 +1,2 @@
-package foo:different-pkg
+package foo:different-pkg;
 interface i {}
diff --git a/crates/wit-parser/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit b/crates/wit-parser/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit
index 957215de..c33f4551 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit
@@ -1,4 +1,4 @@
-package foo:foreign-pkg
+package foo:foreign-pkg;
 
 interface the-default {
   type some-type = u32;
diff --git a/crates/wit-parser/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit b/crates/wit-parser/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit
index ff7e0c03..ba4990fd 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit
@@ -1,4 +1,4 @@
-package foo:some-pkg
+package foo:some-pkg;
 
 interface the-default {
   type from-default = string;
diff --git a/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/clocks.wit b/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/clocks.wit
index abdd2227..0e340852 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/clocks.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/clocks.wit
@@ -1,4 +1,4 @@
-package foo:wasi
+package foo:wasi;
 
 interface clocks {
   type timestamp = u64;
diff --git a/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/filesystem.wit b/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/filesystem.wit
index 1ed63e3d..97be222b 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/filesystem.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/deps/wasi/filesystem.wit
@@ -1,4 +1,4 @@
-package foo:wasi
+package foo:wasi;
 
 interface filesystem {
   record stat {
diff --git a/crates/wit-parser/tests/ui/foreign-deps/root.wit b/crates/wit-parser/tests/ui/foreign-deps/root.wit
index ff17bd44..1880a967 100644
--- a/crates/wit-parser/tests/ui/foreign-deps/root.wit
+++ b/crates/wit-parser/tests/ui/foreign-deps/root.wit
@@ -1,4 +1,4 @@
-package foo:root
+package foo:root;
 
 interface foo {
   use foo:wasi/clocks.{timestamp};
diff --git a/crates/wit-parser/tests/ui/functions.wit b/crates/wit-parser/tests/ui/functions.wit
index 28ed93e0..8c4d8da0 100644
--- a/crates/wit-parser/tests/ui/functions.wit
+++ b/crates/wit-parser/tests/ui/functions.wit
@@ -1,4 +1,4 @@
-package foo:functions
+package foo:functions;
 
 interface functions {
   f1: func();
diff --git a/crates/wit-parser/tests/ui/ignore-files-deps/deps/bar/types.wit b/crates/wit-parser/tests/ui/ignore-files-deps/deps/bar/types.wit
index 22d08739..ad574e3a 100644
--- a/crates/wit-parser/tests/ui/ignore-files-deps/deps/bar/types.wit
+++ b/crates/wit-parser/tests/ui/ignore-files-deps/deps/bar/types.wit
@@ -1,2 +1,2 @@
-package foo:bar
+package foo:bar;
 interface types {}
diff --git a/crates/wit-parser/tests/ui/ignore-files-deps/world.wit b/crates/wit-parser/tests/ui/ignore-files-deps/world.wit
index e5f7557e..710e7ebc 100644
--- a/crates/wit-parser/tests/ui/ignore-files-deps/world.wit
+++ b/crates/wit-parser/tests/ui/ignore-files-deps/world.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo:bar/types;
diff --git a/crates/wit-parser/tests/ui/include-reps.wit b/crates/wit-parser/tests/ui/include-reps.wit
index 2fe7d4a9..cca17dbd 100644
--- a/crates/wit-parser/tests/ui/include-reps.wit
+++ b/crates/wit-parser/tests/ui/include-reps.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a {}
 interface b {}
diff --git a/crates/wit-parser/tests/ui/kebab-name-include-with.wit b/crates/wit-parser/tests/ui/kebab-name-include-with.wit
index abfaffcc..f218637e 100644
--- a/crates/wit-parser/tests/ui/kebab-name-include-with.wit
+++ b/crates/wit-parser/tests/ui/kebab-name-include-with.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo { import a: func(); }
 world bar { import a: func(); }
diff --git a/crates/wit-parser/tests/ui/many-names/b.wit b/crates/wit-parser/tests/ui/many-names/b.wit
index b603f176..c6d85406 100644
--- a/crates/wit-parser/tests/ui/many-names/b.wit
+++ b/crates/wit-parser/tests/ui/many-names/b.wit
@@ -1,4 +1,4 @@
-package foo:name
+package foo:name;
 
 world name {
   import name: interface {}
diff --git a/crates/wit-parser/tests/ui/multi-file/bar.wit b/crates/wit-parser/tests/ui/multi-file/bar.wit
index f9b7de3a..0803f26b 100644
--- a/crates/wit-parser/tests/ui/multi-file/bar.wit
+++ b/crates/wit-parser/tests/ui/multi-file/bar.wit
@@ -1,4 +1,4 @@
-package foo:multi-file
+package foo:multi-file;
 
 interface irrelevant-name {
   record a-name {}
diff --git a/crates/wit-parser/tests/ui/multi-file/foo.wit b/crates/wit-parser/tests/ui/multi-file/foo.wit
index c2c8bd1e..ace17c55 100644
--- a/crates/wit-parser/tests/ui/multi-file/foo.wit
+++ b/crates/wit-parser/tests/ui/multi-file/foo.wit
@@ -1,4 +1,4 @@
-package foo:multi-file
+package foo:multi-file;
 
 interface foo {
   type x = u32;
diff --git a/crates/wit-parser/tests/ui/name-both-resource-and-type/deps/dep/foo.wit b/crates/wit-parser/tests/ui/name-both-resource-and-type/deps/dep/foo.wit
index 290eb87d..f31a0d22 100644
--- a/crates/wit-parser/tests/ui/name-both-resource-and-type/deps/dep/foo.wit
+++ b/crates/wit-parser/tests/ui/name-both-resource-and-type/deps/dep/foo.wit
@@ -1,4 +1,4 @@
-package some:dep
+package some:dep;
 
 interface foo {
   resource a;
diff --git a/crates/wit-parser/tests/ui/name-both-resource-and-type/foo.wit b/crates/wit-parser/tests/ui/name-both-resource-and-type/foo.wit
index ac5c9246..2fa039c1 100644
--- a/crates/wit-parser/tests/ui/name-both-resource-and-type/foo.wit
+++ b/crates/wit-parser/tests/ui/name-both-resource-and-type/foo.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   use some:dep/foo.{a};
diff --git a/crates/wit-parser/tests/ui/package-syntax1.wit b/crates/wit-parser/tests/ui/package-syntax1.wit
index 5a649110..70773a71 100644
--- a/crates/wit-parser/tests/ui/package-syntax1.wit
+++ b/crates/wit-parser/tests/ui/package-syntax1.wit
@@ -1,1 +1,1 @@
-package foo:foo
+package foo:foo;
diff --git a/crates/wit-parser/tests/ui/package-syntax3.wit b/crates/wit-parser/tests/ui/package-syntax3.wit
index 4e7ea6c5..23698f66 100644
--- a/crates/wit-parser/tests/ui/package-syntax3.wit
+++ b/crates/wit-parser/tests/ui/package-syntax3.wit
@@ -1,1 +1,1 @@
-package foo:bar
+package foo:bar;
diff --git a/crates/wit-parser/tests/ui/package-syntax4.wit b/crates/wit-parser/tests/ui/package-syntax4.wit
index 08a4d024..c950b40d 100644
--- a/crates/wit-parser/tests/ui/package-syntax4.wit
+++ b/crates/wit-parser/tests/ui/package-syntax4.wit
@@ -1,1 +1,1 @@
-package foo:bar@2.0.0
+package foo:bar@2.0.0;
diff --git a/crates/wit-parser/tests/ui/parse-fail/alias-no-type.wit b/crates/wit-parser/tests/ui/parse-fail/alias-no-type.wit
index ddec43e7..82b6c1c5 100644
--- a/crates/wit-parser/tests/ui/parse-fail/alias-no-type.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/alias-no-type.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:bar
+package foo:bar;
 
 interface foo {
   type foo = bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-function.wit b/crates/wit-parser/tests/ui/parse-fail/bad-function.wit
index 17cc2765..76f0a6db 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-function.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-function.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   x: func(param: nonexistent);
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-function2.wit b/crates/wit-parser/tests/ui/parse-fail/bad-function2.wit
index 8b4d76c1..a455c8c9 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-function2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-function2.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   x: func() -> nonexistent;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-include1.wit b/crates/wit-parser/tests/ui/parse-fail/bad-include1.wit
index 14a4a642..7d71497a 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-include1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-include1.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   include non-existance;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-include2.wit b/crates/wit-parser/tests/ui/parse-fail/bad-include2.wit
index 02883472..acde1450 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-include2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-include2.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world bar {
     include foo;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-include3.wit b/crates/wit-parser/tests/ui/parse-fail/bad-include3.wit
index 35710b89..a714cdd3 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-include3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-include3.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   include foo;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg1/root.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg1/root.wit
index 7476804a..aca57964 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg1/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg1/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   use nonexistent.{};
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit
index 4e7ea6c5..23698f66 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit
@@ -1,1 +1,1 @@
-package foo:bar
+package foo:bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/root.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/root.wit
index 891429ac..2247dd50 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg2/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   use foo:bar/nonexistent.{};
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit
index 80ffc36d..45e07c73 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit
@@ -1,2 +1,2 @@
-package foo:bar
+package foo:bar;
 world baz {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/root.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/root.wit
index 776677cf..cb1bb28a 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg3/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   use foo:bar/baz.{};
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit
index e1eef0ed..bdad212a 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 interface baz {
   a-name: func();
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/root.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/root.wit
index 522de479..f4ff29fd 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg4/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 interface foo {
   use foo:bar/baz.{a-name};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit
index 6bdda5bb..2c27cd34 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit
@@ -1,3 +1,3 @@
-package foo:bar
+package foo:bar;
 interface baz {
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/root.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/root.wit
index ea8fcf06..df36bac5 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg5/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 interface foo {
   use foo:bar/baz.{nonexistent};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit
index 195539f4..f8364b63 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit
@@ -1,4 +1,4 @@
-package foo:baz
+package foo:baz;
 
 interface bar {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/root.wit b/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/root.wit
index f7a80474..26e60b95 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-pkg6/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 interface foo {
   use foo:bar/baz.{};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource1.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource1.wit
index aa47e7ad..d3a4155f 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource1.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   type t = borrow<u32>;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource10.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource10.wit
index a6ea5559..20b0b36f 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource10.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource10.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   type t = own<u32>;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource11.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource11.wit
index 34314f58..acbdb138 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource11.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource11.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   type t = own<foo>;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource12.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource12.wit
index 0357ec39..c06fe307 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource12.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource12.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   foo: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource13.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource13.wit
index a5782585..28c4fe33 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource13.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource13.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   type foo = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource14.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource14.wit
index 6681dff3..2580afec 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource14.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource14.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit
index cf44f979..42ef3873 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit
@@ -1,4 +1,4 @@
-package some:dep
+package some:dep;
 
 interface foo {
   type r = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource15/foo.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource15/foo.wit
index bb14898e..030dabab 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource15/foo.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource15/foo.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   use some:dep/foo.{r};
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource2.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource2.wit
index 7443c22f..4c5e8917 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource2.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   type t = borrow<foo>;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource3.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource3.wit
index 7d7b197d..ba1083e3 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource3.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   foo: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource4.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource4.wit
index 3178ce7e..52bc9ddb 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource4.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource4.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   type foo = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource5.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource5.wit
index 4de9a834..757be29a 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource5.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource5.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource6.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource6.wit
index 40d0af94..8c4c9718 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource6.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource6.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a {
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource7.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource7.wit
index 790f0eb0..86a9ad2a 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource7.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource7.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a {
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource8.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource8.wit
index 316b7207..b0752d33 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource8.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource8.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a {
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-resource9.wit b/crates/wit-parser/tests/ui/parse-fail/bad-resource9.wit
index 17d341d3..af1530d3 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-resource9.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-resource9.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a {
diff --git a/crates/wit-parser/tests/ui/parse-fail/bad-world-type1.wit b/crates/wit-parser/tests/ui/parse-fail/bad-world-type1.wit
index e0094b78..dac0cbeb 100644
--- a/crates/wit-parser/tests/ui/parse-fail/bad-world-type1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/bad-world-type1.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 world a {
   type a = u32;
   import a: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/conflicting-package.wit.result b/crates/wit-parser/tests/ui/parse-fail/conflicting-package.wit.result
index 2b18334f..5a6fe46e 100644
--- a/crates/wit-parser/tests/ui/parse-fail/conflicting-package.wit.result
+++ b/crates/wit-parser/tests/ui/parse-fail/conflicting-package.wit.result
@@ -4,5 +4,5 @@ Caused by:
     package identifier `foo:b` does not match previous package name of `foo:a`
          --> tests/ui/parse-fail/conflicting-package/b.wit:1:9
           |
-        1 | package foo:b
+        1 | package foo:b;
           |         ^----
\ No newline at end of file
diff --git a/crates/wit-parser/tests/ui/parse-fail/conflicting-package/a.wit b/crates/wit-parser/tests/ui/parse-fail/conflicting-package/a.wit
index 9cd1c0ec..767bedb4 100644
--- a/crates/wit-parser/tests/ui/parse-fail/conflicting-package/a.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/conflicting-package/a.wit
@@ -1,1 +1,1 @@
-package foo:a
+package foo:a;
diff --git a/crates/wit-parser/tests/ui/parse-fail/conflicting-package/b.wit b/crates/wit-parser/tests/ui/parse-fail/conflicting-package/b.wit
index 860805c6..fefd9481 100644
--- a/crates/wit-parser/tests/ui/parse-fail/conflicting-package/b.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/conflicting-package/b.wit
@@ -1,1 +1,1 @@
-package foo:b
+package foo:b;
diff --git a/crates/wit-parser/tests/ui/parse-fail/cycle.wit b/crates/wit-parser/tests/ui/parse-fail/cycle.wit
index 17ac5b31..993b0a52 100644
--- a/crates/wit-parser/tests/ui/parse-fail/cycle.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/cycle.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = foo;
diff --git a/crates/wit-parser/tests/ui/parse-fail/cycle2.wit b/crates/wit-parser/tests/ui/parse-fail/cycle2.wit
index 485afe9d..12ad81a8 100644
--- a/crates/wit-parser/tests/ui/parse-fail/cycle2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/cycle2.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/cycle3.wit b/crates/wit-parser/tests/ui/parse-fail/cycle3.wit
index 0fbf98a5..4762af12 100644
--- a/crates/wit-parser/tests/ui/parse-fail/cycle3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/cycle3.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/cycle4.wit b/crates/wit-parser/tests/ui/parse-fail/cycle4.wit
index 1e211489..353e96c6 100644
--- a/crates/wit-parser/tests/ui/parse-fail/cycle4.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/cycle4.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/cycle5.wit b/crates/wit-parser/tests/ui/parse-fail/cycle5.wit
index 175938fc..5a4f615d 100644
--- a/crates/wit-parser/tests/ui/parse-fail/cycle5.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/cycle5.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/duplicate-function-params.wit b/crates/wit-parser/tests/ui/parse-fail/duplicate-function-params.wit
index df303055..ea39d11d 100644
--- a/crates/wit-parser/tests/ui/parse-fail/duplicate-function-params.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/duplicate-function-params.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   foo: func(foo: u32, foo: u64);
diff --git a/crates/wit-parser/tests/ui/parse-fail/duplicate-functions.wit b/crates/wit-parser/tests/ui/parse-fail/duplicate-functions.wit
index 2437d97d..7d119c09 100644
--- a/crates/wit-parser/tests/ui/parse-fail/duplicate-functions.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/duplicate-functions.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   foo: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/duplicate-interface.wit b/crates/wit-parser/tests/ui/parse-fail/duplicate-interface.wit
index c5fecdd7..887d83d6 100644
--- a/crates/wit-parser/tests/ui/parse-fail/duplicate-interface.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/duplicate-interface.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {}
 interface foo {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo.wit b/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo.wit
index f8a9027d..21bf4083 100644
--- a/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo2.wit b/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo2.wit
index f8a9027d..21bf4083 100644
--- a/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo2.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/duplicate-type.wit b/crates/wit-parser/tests/ui/parse-fail/duplicate-type.wit
index e01f2675..2ca1b228 100644
--- a/crates/wit-parser/tests/ui/parse-fail/duplicate-type.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/duplicate-type.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = s32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/empty-enum.wit b/crates/wit-parser/tests/ui/parse-fail/empty-enum.wit
index 2b957777..6e920db0 100644
--- a/crates/wit-parser/tests/ui/parse-fail/empty-enum.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/empty-enum.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   enum t {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/empty-variant1.wit b/crates/wit-parser/tests/ui/parse-fail/empty-variant1.wit
index 23ba7e18..ecd9ba78 100644
--- a/crates/wit-parser/tests/ui/parse-fail/empty-variant1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/empty-variant1.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   variant t {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/export-twice.wit b/crates/wit-parser/tests/ui/parse-fail/export-twice.wit
index 3fd49b1c..45ad06ba 100644
--- a/crates/wit-parser/tests/ui/parse-fail/export-twice.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/export-twice.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-and-export1.wit b/crates/wit-parser/tests/ui/parse-fail/import-and-export1.wit
index 33cf0ddc..c6f6dc78 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-and-export1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-and-export1.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 interface i1 {
   type t = u32;
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-and-export2.wit b/crates/wit-parser/tests/ui/parse-fail/import-and-export2.wit
index c1c05081..8a744fc3 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-and-export2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-and-export2.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type t = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-and-export3.wit b/crates/wit-parser/tests/ui/parse-fail/import-and-export3.wit
index 2e228a77..c7c30e63 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-and-export3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-and-export3.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
 interface bar {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-and-export4.wit b/crates/wit-parser/tests/ui/parse-fail/import-and-export4.wit
index 20b51c25..cc17c3d0 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-and-export4.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-and-export4.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 
 world union-world {
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-and-export5.wit b/crates/wit-parser/tests/ui/parse-fail/import-and-export5.wit
index 7965b98e..2c75355b 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-and-export5.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-and-export5.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface a {
   record x {
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-export-overlap1.wit b/crates/wit-parser/tests/ui/parse-fail/import-export-overlap1.wit
index 9018cbfe..49426de2 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-export-overlap1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-export-overlap1.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 world foo {
   import a: func();
   export a: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-export-overlap2.wit b/crates/wit-parser/tests/ui/parse-fail/import-export-overlap2.wit
index e2d92bd1..f25dda1b 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-export-overlap2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-export-overlap2.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 world foo {
   import a: func();
   export a: interface {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/import-twice.wit b/crates/wit-parser/tests/ui/parse-fail/import-twice.wit
index a6951e89..78f380d4 100644
--- a/crates/wit-parser/tests/ui/parse-fail/import-twice.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/import-twice.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/include-cycle.wit b/crates/wit-parser/tests/ui/parse-fail/include-cycle.wit
index b1fd067d..6a1bf1cd 100644
--- a/crates/wit-parser/tests/ui/parse-fail/include-cycle.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/include-cycle.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world a {
     include b;
diff --git a/crates/wit-parser/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit b/crates/wit-parser/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit
index b6da2120..e3016a3f 100644
--- a/crates/wit-parser/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit
@@ -1,3 +1,3 @@
-package foo:bar
+package foo:bar;
 
 interface bar {}
\ No newline at end of file
diff --git a/crates/wit-parser/tests/ui/parse-fail/include-foreign/root.wit b/crates/wit-parser/tests/ui/parse-fail/include-foreign/root.wit
index aa578895..3a26f456 100644
--- a/crates/wit-parser/tests/ui/parse-fail/include-foreign/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/include-foreign/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   include foo:bar/bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/include-with-id.wit b/crates/wit-parser/tests/ui/parse-fail/include-with-id.wit
index 0d8ba101..20f8f758 100644
--- a/crates/wit-parser/tests/ui/parse-fail/include-with-id.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/include-with-id.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/include-with-on-id.wit b/crates/wit-parser/tests/ui/parse-fail/include-with-on-id.wit
index 66a2c624..fc39f548 100644
--- a/crates/wit-parser/tests/ui/parse-fail/include-with-on-id.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/include-with-on-id.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference.wit b/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference.wit
index 6f2f8de5..75dc2c38 100644
--- a/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   x: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference2.wit b/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference2.wit
index e0d12fc1..1ebdcbdb 100644
--- a/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/invalid-type-reference2.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   x: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/kebab-name-include-not-found.wit b/crates/wit-parser/tests/ui/parse-fail/kebab-name-include-not-found.wit
index b463907a..23f093c8 100644
--- a/crates/wit-parser/tests/ui/parse-fail/kebab-name-include-not-found.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/kebab-name-include-not-found.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo { import a: func(); }
 world bar { import a: func(); }
diff --git a/crates/wit-parser/tests/ui/parse-fail/kebab-name-include.wit b/crates/wit-parser/tests/ui/parse-fail/kebab-name-include.wit
index 7fe46f48..abbd073a 100644
--- a/crates/wit-parser/tests/ui/parse-fail/kebab-name-include.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/kebab-name-include.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo { import a: func(); }
 world bar { import a: func(); }
diff --git a/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/a.wit b/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/a.wit
index 4ff62b5c..0ee174b5 100644
--- a/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/a.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/a.wit
@@ -1,2 +1,2 @@
-/// Multiple package docs, A
-package foo:foo
\ No newline at end of file
+/// Multiple package docs, A;
+package foo:foo;
\ No newline at end of file
diff --git a/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/b.wit b/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/b.wit
index bb2aa15f..e3808b02 100644
--- a/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/b.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/multiple-package-docs/b.wit
@@ -1,2 +1,2 @@
 /// Multiple package docs, B
-package foo:foo
\ No newline at end of file
+package foo:foo;
diff --git a/crates/wit-parser/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit b/crates/wit-parser/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit
index c634bdb2..7b3cf274 100644
--- a/crates/wit-parser/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 use bar-renamed;
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit b/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit
index 195539f4..f8364b63 100644
--- a/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit
@@ -1,4 +1,4 @@
-package foo:baz
+package foo:baz;
 
 interface bar {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/root.wit b/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/root.wit
index 7de81f0a..741318b8 100644
--- a/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/non-existance-world-include/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   include foo:baz/non-existance;
diff --git a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit
index fe37906c..0fccfc5d 100644
--- a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit
@@ -1,4 +1,4 @@
-package foo:a1
+package foo:a1;
 interface foo {
   use foo:a1/foo.{};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/root.wit b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/root.wit
index 555cda98..c66e1766 100644
--- a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 interface foo {
   use foo:a1/foo.{};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit
index b6a6adb6..4a2b7122 100644
--- a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit
@@ -1,4 +1,4 @@
-package foo:a1
+package foo:a1;
 interface foo {
   use foo:a2/foo.{};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit
index a1897204..9e022eae 100644
--- a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit
@@ -1,4 +1,4 @@
-package foo:a2
+package foo:a2;
 interface foo {
   use foo:a1/foo.{};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/root.wit b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/root.wit
index 22d878d5..105069df 100644
--- a/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/pkg-cycle2/root.wit
@@ -1,4 +1,4 @@
-package foo:root
+package foo:root;
 interface foo {
   use foo:a1/foo.{};
 }
diff --git a/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit b/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit
index 77ce2462..de2cc53b 100644
--- a/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit
@@ -1,4 +1,4 @@
-package some:dep
+package some:dep;
 
 interface foo {
   type a = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/foo.wit b/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/foo.wit
index 0e5b5b1a..e09956f7 100644
--- a/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/foo.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/foo.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   use some:dep/foo.{a};
diff --git a/crates/wit-parser/tests/ui/parse-fail/undefined-typed.wit b/crates/wit-parser/tests/ui/parse-fail/undefined-typed.wit
index 3538aa5c..e0e12f28 100644
--- a/crates/wit-parser/tests/ui/parse-fail/undefined-typed.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/undefined-typed.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   type foo = bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/union-fuzz-2.wit b/crates/wit-parser/tests/ui/parse-fail/union-fuzz-2.wit
index 946ccf59..3d0e55b8 100644
--- a/crates/wit-parser/tests/ui/parse-fail/union-fuzz-2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/union-fuzz-2.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world foo {
     export foo: func() -> (%name2: float32);
diff --git a/crates/wit-parser/tests/ui/parse-fail/unknown-interface.wit b/crates/wit-parser/tests/ui/parse-fail/unknown-interface.wit
index 1478920f..dcdf4a47 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unknown-interface.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unknown-interface.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world foo {
   import bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface1.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface1.wit
index 93965876..6b25224b 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface1.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo;
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface2.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface2.wit
index d5162377..3f74362c 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface2.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world foo {
   import bar;
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface3.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface3.wit
index f64797b6..98f2f45b 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface3.wit
@@ -1,5 +1,5 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 use bar as foo;
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface4.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface4.wit
index 17912419..35addea0 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-interface4.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-interface4.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world foo {
   import some:dependency/iface;
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-use1.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-use1.wit
index 619ce5ff..cf69305a 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-use1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-use1.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   use bar.{x};
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-use10/bar.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-use10/bar.wit
index 7694d1d6..aee52cbf 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-use10/bar.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-use10/bar.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface bar {
   use foo.{thing};
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-use2.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-use2.wit
index ca14f7ea..e3e543be 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-use2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-use2.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   use bar.{x};
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-use3.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-use3.wit
index fb302a54..38f3c125 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-use3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-use3.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   use bar.{x};
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-use7.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-use7.wit
index ca14f7ea..e3e543be 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-use7.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-use7.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   use bar.{x};
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-use8.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-use8.wit
index e223fde6..2eecf153 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-use8.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-use8.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo: interface {
diff --git a/crates/wit-parser/tests/ui/parse-fail/unresolved-use9.wit b/crates/wit-parser/tests/ui/parse-fail/unresolved-use9.wit
index 9b34649b..a16e1341 100644
--- a/crates/wit-parser/tests/ui/parse-fail/unresolved-use9.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/unresolved-use9.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo: interface {
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit b/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit
index 50160910..f16ef464 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit
@@ -1,4 +1,4 @@
-package foo:baz
+package foo:baz;
 
 world bar {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/root.wit b/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/root.wit
index f40002f0..43627881 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-and-include-world/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 use foo:baz/bar;
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-conflict.wit b/crates/wit-parser/tests/ui/parse-fail/use-conflict.wit
index e891e2a7..3eedfba2 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-conflict.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-conflict.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   type x = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-conflict2.wit b/crates/wit-parser/tests/ui/parse-fail/use-conflict2.wit
index 9e7d6599..12b5b62f 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-conflict2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-conflict2.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   type x = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-conflict3.wit b/crates/wit-parser/tests/ui/parse-fail/use-conflict3.wit
index 46fa78a4..572cbe97 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-conflict3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-conflict3.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   type x = u32;
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-cycle1.wit b/crates/wit-parser/tests/ui/parse-fail/use-cycle1.wit
index d71542bb..f7fc7ca0 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-cycle1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-cycle1.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 interface foo {
   use foo.{bar};
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-cycle4.wit b/crates/wit-parser/tests/ui/parse-fail/use-cycle4.wit
index f07f3001..b93a96d0 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-cycle4.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-cycle4.wit
@@ -1,5 +1,5 @@
 // parse-fail
-package foo:foo
+package foo:foo;
 
 interface foo {
   use bar.{y};
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-shadow1.wit b/crates/wit-parser/tests/ui/parse-fail/use-shadow1.wit
index 261abaf8..3c3c4428 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-shadow1.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-shadow1.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 use foo as bar;
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-world/deps/bar/baz.wit b/crates/wit-parser/tests/ui/parse-fail/use-world/deps/bar/baz.wit
index 50160910..f16ef464 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-world/deps/bar/baz.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-world/deps/bar/baz.wit
@@ -1,4 +1,4 @@
-package foo:baz
+package foo:baz;
 
 world bar {}
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/use-world/root.wit b/crates/wit-parser/tests/ui/parse-fail/use-world/root.wit
index ddbd7661..bd81949e 100644
--- a/crates/wit-parser/tests/ui/parse-fail/use-world/root.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/use-world/root.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 use foo:baz/bar;
 
diff --git a/crates/wit-parser/tests/ui/parse-fail/world-interface-clash.wit b/crates/wit-parser/tests/ui/parse-fail/world-interface-clash.wit
index dbc015b2..32f0bb59 100644
--- a/crates/wit-parser/tests/ui/parse-fail/world-interface-clash.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/world-interface-clash.wit
@@ -1,3 +1,3 @@
-package foo:foo
+package foo:foo;
 interface foo {}
 world foo {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/world-same-fields2.wit b/crates/wit-parser/tests/ui/parse-fail/world-same-fields2.wit
index c39cdc52..ca16b1e9 100644
--- a/crates/wit-parser/tests/ui/parse-fail/world-same-fields2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/world-same-fields2.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world a {
   import foo: interface {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/world-same-fields3.wit b/crates/wit-parser/tests/ui/parse-fail/world-same-fields3.wit
index e7e2d8e7..104af9f5 100644
--- a/crates/wit-parser/tests/ui/parse-fail/world-same-fields3.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/world-same-fields3.wit
@@ -1,6 +1,6 @@
 // parse-fail
 
-package foo:foo
+package foo:foo;
 
 world a {
   export foo: interface {}
diff --git a/crates/wit-parser/tests/ui/parse-fail/world-top-level-func.wit b/crates/wit-parser/tests/ui/parse-fail/world-top-level-func.wit
index c9a73bba..71269da0 100644
--- a/crates/wit-parser/tests/ui/parse-fail/world-top-level-func.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/world-top-level-func.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 world foo {
   import foo: func();
   import foo: func();
diff --git a/crates/wit-parser/tests/ui/parse-fail/world-top-level-func2.wit b/crates/wit-parser/tests/ui/parse-fail/world-top-level-func2.wit
index e2871c47..e0fd2703 100644
--- a/crates/wit-parser/tests/ui/parse-fail/world-top-level-func2.wit
+++ b/crates/wit-parser/tests/ui/parse-fail/world-top-level-func2.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 world foo {
   import foo: func(a: b);
 }
diff --git a/crates/wit-parser/tests/ui/random.wit b/crates/wit-parser/tests/ui/random.wit
index 324d32af..999ada60 100644
--- a/crates/wit-parser/tests/ui/random.wit
+++ b/crates/wit-parser/tests/ui/random.wit
@@ -1,4 +1,4 @@
-package wasi:random
+package wasi:random;
 
 /// WASI Random is a random data API.
 ///
diff --git a/crates/wit-parser/tests/ui/resources-empty.wit b/crates/wit-parser/tests/ui/resources-empty.wit
index 1d6ca6bf..62447351 100644
--- a/crates/wit-parser/tests/ui/resources-empty.wit
+++ b/crates/wit-parser/tests/ui/resources-empty.wit
@@ -1,4 +1,4 @@
-package foo:resources-empty
+package foo:resources-empty;
 
 interface resources-empty {
   t1: func(a: own<r1>) -> ();
diff --git a/crates/wit-parser/tests/ui/resources-multiple-returns-borrow.wit b/crates/wit-parser/tests/ui/resources-multiple-returns-borrow.wit
index a292ad00..00b62676 100644
--- a/crates/wit-parser/tests/ui/resources-multiple-returns-borrow.wit
+++ b/crates/wit-parser/tests/ui/resources-multiple-returns-borrow.wit
@@ -1,4 +1,4 @@
-package foo:resources1
+package foo:resources1;
 
 interface resources1 {
   t1: func(a: borrow<r1>) -> ();
diff --git a/crates/wit-parser/tests/ui/resources-multiple-returns-own.wit b/crates/wit-parser/tests/ui/resources-multiple-returns-own.wit
index 726c850f..13e87ffd 100644
--- a/crates/wit-parser/tests/ui/resources-multiple-returns-own.wit
+++ b/crates/wit-parser/tests/ui/resources-multiple-returns-own.wit
@@ -1,4 +1,4 @@
-package foo:resources1
+package foo:resources1;
 
 interface resources1 {
   t1: func(a: own<r1>) -> ();
diff --git a/crates/wit-parser/tests/ui/resources-multiple.wit b/crates/wit-parser/tests/ui/resources-multiple.wit
index a04eff6f..1e7146b9 100644
--- a/crates/wit-parser/tests/ui/resources-multiple.wit
+++ b/crates/wit-parser/tests/ui/resources-multiple.wit
@@ -1,4 +1,4 @@
-package foo:resources-multiple
+package foo:resources-multiple;
 
 interface resources-multiple {
   t1: func(a: borrow<r1>) -> ();
diff --git a/crates/wit-parser/tests/ui/resources-return-borrow.wit b/crates/wit-parser/tests/ui/resources-return-borrow.wit
index a3c8f33f..ab60abba 100644
--- a/crates/wit-parser/tests/ui/resources-return-borrow.wit
+++ b/crates/wit-parser/tests/ui/resources-return-borrow.wit
@@ -1,4 +1,4 @@
-package foo:resources1
+package foo:resources1;
 
 interface resources1 {
   t1: func(a: borrow<r1>) -> ();
diff --git a/crates/wit-parser/tests/ui/resources-return-own.wit b/crates/wit-parser/tests/ui/resources-return-own.wit
index 6f5d22ab..0e36ac4b 100644
--- a/crates/wit-parser/tests/ui/resources-return-own.wit
+++ b/crates/wit-parser/tests/ui/resources-return-own.wit
@@ -1,4 +1,4 @@
-package foo:resources1
+package foo:resources1;
 
 interface resources1 {
   t1: func(a: own<r1>) -> ();
diff --git a/crates/wit-parser/tests/ui/resources.wit b/crates/wit-parser/tests/ui/resources.wit
index 26277581..cdb8aefd 100644
--- a/crates/wit-parser/tests/ui/resources.wit
+++ b/crates/wit-parser/tests/ui/resources.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface foo {
   resource a {
diff --git a/crates/wit-parser/tests/ui/resources1.wit b/crates/wit-parser/tests/ui/resources1.wit
index a5b7fd7c..77baeffe 100644
--- a/crates/wit-parser/tests/ui/resources1.wit
+++ b/crates/wit-parser/tests/ui/resources1.wit
@@ -1,4 +1,4 @@
-package foo:resources1
+package foo:resources1;
 
 interface resources1 {
   t1: func(a: borrow<r1>) -> ();
diff --git a/crates/wit-parser/tests/ui/shared-types.wit b/crates/wit-parser/tests/ui/shared-types.wit
index 4e22179d..3aafbda8 100644
--- a/crates/wit-parser/tests/ui/shared-types.wit
+++ b/crates/wit-parser/tests/ui/shared-types.wit
@@ -1,4 +1,4 @@
-package foo:shared-items
+package foo:shared-items;
 
 world foo {
   import foo: interface {
diff --git a/crates/wit-parser/tests/ui/stress-export-elaborate.wit b/crates/wit-parser/tests/ui/stress-export-elaborate.wit
index 02a5997d..aba12ee1 100644
--- a/crates/wit-parser/tests/ui/stress-export-elaborate.wit
+++ b/crates/wit-parser/tests/ui/stress-export-elaborate.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 interface i1 {
   type t1 = u32;
diff --git a/crates/wit-parser/tests/ui/type-then-eof.wit b/crates/wit-parser/tests/ui/type-then-eof.wit
index 1172ef4c..4c4424b3 100644
--- a/crates/wit-parser/tests/ui/type-then-eof.wit
+++ b/crates/wit-parser/tests/ui/type-then-eof.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   foo: func() -> string;
diff --git a/crates/wit-parser/tests/ui/types.wit b/crates/wit-parser/tests/ui/types.wit
index 7371af62..99f0f2a2 100644
--- a/crates/wit-parser/tests/ui/types.wit
+++ b/crates/wit-parser/tests/ui/types.wit
@@ -1,4 +1,4 @@
-package foo:types
+package foo:types;
 
 interface types {
   type t1 = u8;
diff --git a/crates/wit-parser/tests/ui/union-fuzz-1.wit b/crates/wit-parser/tests/ui/union-fuzz-1.wit
index 927a7b03..6528f7db 100644
--- a/crates/wit-parser/tests/ui/union-fuzz-1.wit
+++ b/crates/wit-parser/tests/ui/union-fuzz-1.wit
@@ -1,4 +1,4 @@
-package foo:bar
+package foo:bar;
 
 world xo {}
 
diff --git a/crates/wit-parser/tests/ui/use-chain.wit b/crates/wit-parser/tests/ui/use-chain.wit
index 847d69d0..e40f3e49 100644
--- a/crates/wit-parser/tests/ui/use-chain.wit
+++ b/crates/wit-parser/tests/ui/use-chain.wit
@@ -1,4 +1,4 @@
-package foo:name
+package foo:name;
 
 interface foo {
   record foo {}
diff --git a/crates/wit-parser/tests/ui/use.wit b/crates/wit-parser/tests/ui/use.wit
index ba4d899f..dce58e6f 100644
--- a/crates/wit-parser/tests/ui/use.wit
+++ b/crates/wit-parser/tests/ui/use.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   use bar.{the-type};
diff --git a/crates/wit-parser/tests/ui/versions/deps/a1/foo.wit b/crates/wit-parser/tests/ui/versions/deps/a1/foo.wit
index ec241f65..c9edd0e7 100644
--- a/crates/wit-parser/tests/ui/versions/deps/a1/foo.wit
+++ b/crates/wit-parser/tests/ui/versions/deps/a1/foo.wit
@@ -1,4 +1,4 @@
-package a:a@1.0.0
+package a:a@1.0.0;
 
 interface foo {
   type t = u32;
diff --git a/crates/wit-parser/tests/ui/versions/deps/a2/foo.wit b/crates/wit-parser/tests/ui/versions/deps/a2/foo.wit
index fc8b79e1..99b782cc 100644
--- a/crates/wit-parser/tests/ui/versions/deps/a2/foo.wit
+++ b/crates/wit-parser/tests/ui/versions/deps/a2/foo.wit
@@ -1,4 +1,4 @@
-package a:a@2.0.0
+package a:a@2.0.0;
 
 interface foo {
   type t = u32;
diff --git a/crates/wit-parser/tests/ui/versions/foo.wit b/crates/wit-parser/tests/ui/versions/foo.wit
index 4e6b13e4..0086bf0d 100644
--- a/crates/wit-parser/tests/ui/versions/foo.wit
+++ b/crates/wit-parser/tests/ui/versions/foo.wit
@@ -1,4 +1,4 @@
-package foo:versions
+package foo:versions;
 
 interface foo {
   use a:a/foo@1.0.0.{t};
diff --git a/crates/wit-parser/tests/ui/wasi.wit b/crates/wit-parser/tests/ui/wasi.wit
index 3071a83b..cf084a3f 100644
--- a/crates/wit-parser/tests/ui/wasi.wit
+++ b/crates/wit-parser/tests/ui/wasi.wit
@@ -1,4 +1,4 @@
-package wasi:filesystem
+package wasi:filesystem;
 
 interface wasi {
   enum clockid {
diff --git a/crates/wit-parser/tests/ui/world-diamond.wit b/crates/wit-parser/tests/ui/world-diamond.wit
index 28f89cfa..e20e488e 100644
--- a/crates/wit-parser/tests/ui/world-diamond.wit
+++ b/crates/wit-parser/tests/ui/world-diamond.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface shared-items {
   type foo = u32;
diff --git a/crates/wit-parser/tests/ui/world-iface-no-collide.wit b/crates/wit-parser/tests/ui/world-iface-no-collide.wit
index 46b08cf8..f68b1c9c 100644
--- a/crates/wit-parser/tests/ui/world-iface-no-collide.wit
+++ b/crates/wit-parser/tests/ui/world-iface-no-collide.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type t = u32;
diff --git a/crates/wit-parser/tests/ui/world-implicit-import1.wit b/crates/wit-parser/tests/ui/world-implicit-import1.wit
index 790fb99d..48799813 100644
--- a/crates/wit-parser/tests/ui/world-implicit-import1.wit
+++ b/crates/wit-parser/tests/ui/world-implicit-import1.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type a = u32;
diff --git a/crates/wit-parser/tests/ui/world-implicit-import2.wit b/crates/wit-parser/tests/ui/world-implicit-import2.wit
index 6fd4ebdc..5e172e98 100644
--- a/crates/wit-parser/tests/ui/world-implicit-import2.wit
+++ b/crates/wit-parser/tests/ui/world-implicit-import2.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type g = char;
diff --git a/crates/wit-parser/tests/ui/world-implicit-import3.wit b/crates/wit-parser/tests/ui/world-implicit-import3.wit
index 9ba850b0..ac62df25 100644
--- a/crates/wit-parser/tests/ui/world-implicit-import3.wit
+++ b/crates/wit-parser/tests/ui/world-implicit-import3.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface foo {
   type g = char;
diff --git a/crates/wit-parser/tests/ui/world-same-fields4.wit b/crates/wit-parser/tests/ui/world-same-fields4.wit
index d9bb97e6..f1fda3af 100644
--- a/crates/wit-parser/tests/ui/world-same-fields4.wit
+++ b/crates/wit-parser/tests/ui/world-same-fields4.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface shared-items {
   type a = u32;
diff --git a/crates/wit-parser/tests/ui/world-top-level-funcs.wit b/crates/wit-parser/tests/ui/world-top-level-funcs.wit
index b784ae72..2adab9d5 100644
--- a/crates/wit-parser/tests/ui/world-top-level-funcs.wit
+++ b/crates/wit-parser/tests/ui/world-top-level-funcs.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   import foo: func();
diff --git a/crates/wit-parser/tests/ui/world-top-level-resources.wit b/crates/wit-parser/tests/ui/world-top-level-resources.wit
index a82ced37..c236fc7d 100644
--- a/crates/wit-parser/tests/ui/world-top-level-resources.wit
+++ b/crates/wit-parser/tests/ui/world-top-level-resources.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface types {
   resource request {
diff --git a/crates/wit-parser/tests/ui/worlds-union-dedup.wit b/crates/wit-parser/tests/ui/worlds-union-dedup.wit
index de5f6a4d..0e30a0b6 100644
--- a/crates/wit-parser/tests/ui/worlds-union-dedup.wit
+++ b/crates/wit-parser/tests/ui/worlds-union-dedup.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 interface a1 { }
 interface a2 { }
diff --git a/crates/wit-parser/tests/ui/worlds-with-types.wit b/crates/wit-parser/tests/ui/worlds-with-types.wit
index 81e20f89..b0c015df 100644
--- a/crates/wit-parser/tests/ui/worlds-with-types.wit
+++ b/crates/wit-parser/tests/ui/worlds-with-types.wit
@@ -1,4 +1,4 @@
-package foo:foo
+package foo:foo;
 
 world foo {
   type a = u32;
diff --git a/tests/cli/print-core-wasm-wit.wit b/tests/cli/print-core-wasm-wit.wit
index 8ac40130..54953e49 100644
--- a/tests/cli/print-core-wasm-wit.wit
+++ b/tests/cli/print-core-wasm-wit.wit
@@ -1,6 +1,6 @@
 // RUN: component embed --dummy % | component wit
 
-package foo:foo
+package foo:foo;
 
 interface my-interface {
   foo: func();