@@ -336,7 +336,7 @@ fn print_union(ret: &mut String, name: &Id, u: &UnionDatatype) {
336336 ident_name( name)
337337 ) ) ;
338338
339- ret. push_str ( & format ! ( " {} tag;\n " , typeref_name ( & u. tag) ) ) ;
339+ ret. push_str ( & format ! ( " {} tag;\n " , namedtype_name ( & u. tag) ) ) ;
340340 ret. push_str ( & format ! ( " __wasi_{}_u_t u;\n " , ident_name( name) ) ) ;
341341
342342 ret. push_str ( & format ! ( "}} __wasi_{}_t;\n " , ident_name( name) ) ) ;
@@ -566,12 +566,7 @@ fn typeref_name(tref: &TypeRef) -> String {
566566 }
567567
568568 match tref {
569- TypeRef :: Name ( named_type) => match & * named_type. type_ ( ) {
570- Type :: Pointer ( p) => format ! ( "{} *" , typeref_name( & * p) ) ,
571- Type :: ConstPointer ( p) => format ! ( "const {} *" , typeref_name( & * p) ) ,
572- Type :: Array ( _) => unreachable ! ( "arrays excluded above" ) ,
573- _ => format ! ( "__wasi_{}_t" , named_type. name. as_str( ) ) ,
574- } ,
569+ TypeRef :: Name ( named_type) => namedtype_name ( & named_type) ,
575570 TypeRef :: Value ( anon_type) => match & * * anon_type {
576571 Type :: Array ( _) => unreachable ! ( "arrays excluded above" ) ,
577572 Type :: Builtin ( b) => builtin_type_name ( * b) . to_string ( ) ,
@@ -589,6 +584,15 @@ fn typeref_name(tref: &TypeRef) -> String {
589584 }
590585}
591586
587+ fn namedtype_name ( named_type : & NamedType ) -> String {
588+ match & * named_type. type_ ( ) {
589+ Type :: Pointer ( p) => format ! ( "{} *" , typeref_name( & * p) ) ,
590+ Type :: ConstPointer ( p) => format ! ( "const {} *" , typeref_name( & * p) ) ,
591+ Type :: Array ( _) => unreachable ! ( "arrays excluded above" ) ,
592+ _ => format ! ( "__wasi_{}_t" , named_type. name. as_str( ) ) ,
593+ }
594+ }
595+
592596fn intrepr_name ( i : IntRepr ) -> & ' static str {
593597 match i {
594598 IntRepr :: U8 => "uint8_t" ,
0 commit comments