Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion crates/wac-graph/src/graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1668,7 +1668,14 @@ impl<'a> CompositionGraphEncoder<'a> {
if let DefinedType::Alias(aliased @ ValueType::Defined(_)) =
&self.0.types()[id]
{
(ty, state.current.type_indexes[&Type::Value(*aliased)])
if let Some(&index) =
// check if aliased had previously been exported
state.current.type_indexes.get(&Type::Value(*aliased))
{
(ty, index)
} else {
(ty, encoder.ty(state, ty, None))
}
} else {
(ty, encoder.ty(state, ty, None))
}
Expand Down
7 changes: 7 additions & 0 deletions crates/wac-parser/tests/encoding/types.wac
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,10 @@ type m2 = m;
type o2 = o;
type p2 = p;
type q2 = q;

// Test encoding of aliases to inline-created defined types
type list-alias = list<u8>;
type option-alias = option<string>;
type result-alias = result<u32, string>;
type tuple-alias = tuple<u8, u16>;
type nested-list-alias = list<list<u8>>;
11 changes: 11 additions & 0 deletions crates/wac-parser/tests/encoding/types.wac.result
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,17 @@
(export $o2 (;58;) "o2" (type $o))
(export $p2 (;59;) "p2" (type $p))
(export $q2 (;60;) "q2" (type $q))
(type (;61;) (list u8))
(export $list-alias (;62;) "list-alias" (type 61))
(type (;63;) (option string))
(export $option-alias (;64;) "option-alias" (type 63))
(type (;65;) (result u32 (error string)))
(export $result-alias (;66;) "result-alias" (type 65))
(type (;67;) (tuple u8 u16))
(export $tuple-alias (;68;) "tuple-alias" (type 67))
(type (;69;) (list u8))
(type (;70;) (list 69))
(export $nested-list-alias (;71;) "nested-list-alias" (type 70))
(@producers
(processed-by "wac-parser" "0.10.1")
)
Expand Down
Loading