@@ -1509,7 +1509,10 @@ def mangle_flags(labels):
1509
1509
return ' flags { ' + ' , ' .join(labels) + ' }'
1510
1510
1511
1511
def mangle_varianttype (cases ):
1512
- mangled_cases = (c.label + ' (' + mangle_maybevaltype(c.t) + ' )' for c in cases)
1512
+ mangled_cases = (' {label}{payload} ' .format(
1513
+ label = c.label,
1514
+ payload = ' ' if c.t is None else ' (' + mangle_valtype(c.t) + ' )' )
1515
+ for c in cases)
1513
1516
return ' variant { ' + ' , ' .join(mangled_cases) + ' }'
1514
1517
1515
1518
def mangle_enumtype (labels ):
@@ -1522,12 +1525,11 @@ def mangle_optiontype(t):
1522
1525
return ' option<' + mangle_valtype(t) + ' >'
1523
1526
1524
1527
def mangle_resulttype (ok , error ):
1525
- return ' result<' + mangle_maybevaltype(ok) + ' , ' + mangle_maybevaltype(error) + ' >'
1526
-
1527
- def mangle_maybevaltype (t ):
1528
- if t is None :
1529
- return ' _'
1530
- return mangle_valtype(t)
1528
+ match (ok, error):
1529
+ case (None , None ) : return ' result'
1530
+ case (None , _) : return ' result<_, ' + mangle_valtype(error) + ' >'
1531
+ case (_, None ) : return ' result<' + mangle_valtype(ok) + ' >'
1532
+ case (_, _) : return ' result<' + mangle_valtype(ok) + ' , ' + mangle_valtype(error) + ' >'
1531
1533
```
1532
1534
As an example, given a component type:
1533
1535
``` wasm
0 commit comments