1(assert_trap
2  (component
3    (type $enum (enum "case0" "case1" "case2"))
4
5    ;; Returns invalid discriminant 3 (valid range: 0-2)
6    (component $producer
7      (import "enum" (type $enum' (eq $enum)))
8      (core module $core
9        (func (export "get") (result i32) (i32.const 3)))
10      (core instance $inst (instantiate $core))
11      (func (export "get") (result $enum') (canon lift (core func $inst "get"))))
12
13    ;; Calls producer through adapter - validation should trap here
14    (component $consumer
15      (import "enum" (type $enum' (eq $enum)))
16      (import "get" (func $get (result $enum')))
17      (core func $lowered (canon lower (func $get)))
18      (core module $core
19        (import "" "get" (func (result i32)))
20        (func $start (call 0) drop)
21        (start $start))
22      (core instance (instantiate $core (with "" (instance (export "get" (func $lowered)))))))
23
24    (instance $prod (instantiate $producer (with "enum" (type $enum))))
25    (instance (instantiate $consumer (with "enum" (type $enum)) (with "get" (func $prod "get")))))
26  "invalid variant discriminant")
27