Skip to content

Commit 1a2b915

Browse files
Add more snapshots for feature gate paths and fix a panic on @SInCE include (#2510)
* Add more snapshots for feature gate paths and fix a panic on @SInCE include * Preserve world name
1 parent c523ab6 commit 1a2b915

13 files changed

Lines changed: 75 additions & 2 deletions

crates/wit-parser/src/resolve/mod.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3839,9 +3839,12 @@ impl Remap {
38393839
if !resolve
38403840
.include_stability(&include.stability, pkg_id, include.span)
38413841
.with_context(|| {
3842+
let world_name = match self.worlds[include.id.index()] {
3843+
Some(resolved_id) => resolve.worlds[resolved_id].name.as_str(),
3844+
None => "<unknown>",
3845+
};
38423846
format!(
3843-
"failed to process feature gate for included world [{}] in package [{}]",
3844-
resolve.worlds[include.id].name.as_str(),
3847+
"failed to process feature gate for included world [{world_name}] in package [{}]",
38453848
resolve.packages[*pkg_id].name
38463849
)
38473850
})?
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package a:b;
2+
3+
interface foo {
4+
@unstable(feature = inactive)
5+
type gated = u32;
6+
7+
record r {
8+
field-a: u32,
9+
field-b: gated,
10+
field-c: string,
11+
}
12+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
failed to update field `field-b`: found a reference to a type which is excluded due to its feature not being activated
2+
--> tests/ui/parse-fail/bad-gate-record-field.wit:7:10
3+
|
4+
7 | record r {
5+
| ^
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package test:invalid@0.1.0;
2+
3+
world a {}
4+
5+
world b {
6+
@since(version = 0.2.0)
7+
include a;
8+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
failed to process feature gate for included world [a] in package [test:invalid@0.1.0]: feature gate cannot reference unreleased version 0.2.0 of package [test:invalid@0.1.0] (current version 0.1.0)
2+
--> tests/ui/parse-fail/bad-since-on-include.wit:7:11
3+
|
4+
7 | include a;
5+
| ^
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package test:invalid@0.1.0;
2+
3+
@since(version = 0.2.0)
4+
interface foo {}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
failed to process feature gate for interface [foo] in package [test:invalid@0.1.0]: feature gate cannot reference unreleased version 0.2.0 of package [test:invalid@0.1.0] (current version 0.1.0)
2+
--> tests/ui/parse-fail/bad-since-on-interface.wit:4:11
3+
|
4+
4 | interface foo {}
5+
| ^--
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package test:invalid@0.1.0;
2+
3+
interface foo {
4+
@since(version = 0.2.0)
5+
type t = u32;
6+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
failed to process feature gate for type [t] in package [test:invalid@0.1.0]: feature gate cannot reference unreleased version 0.2.0 of package [test:invalid@0.1.0] (current version 0.1.0)
2+
--> tests/ui/parse-fail/bad-since-on-type.wit:5:8
3+
|
4+
5 | type t = u32;
5+
| ^
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package test:invalid@0.1.0;
2+
3+
world w {
4+
@since(version = 0.2.0)
5+
import x: func();
6+
}

0 commit comments

Comments
 (0)