Replace wuffs_base__make_status(x).repr with x
diff --git a/internal/cgen/expr.go b/internal/cgen/expr.go
index 300e726..9474a4a 100644
--- a/internal/cgen/expr.go
+++ b/internal/cgen/expr.go
@@ -276,25 +276,32 @@
}
b.writeb('(')
- if err := g.writeExpr(b, n.LHS().AsExpr(), depth); err != nil {
+ if err := g.writeExprRepr(b, n.LHS().AsExpr(), depth); err != nil {
return err
}
- if g.hasRepr(n.LHS().AsExpr()) {
- b.writes(".repr")
- }
b.writes(opName)
- if err := g.writeExpr(b, n.RHS().AsExpr(), depth); err != nil {
+ if err := g.writeExprRepr(b, n.RHS().AsExpr(), depth); err != nil {
return err
}
- if g.hasRepr(n.RHS().AsExpr()) {
- b.writes(".repr")
- }
b.writeb(')')
return nil
}
-func (g *gen) hasRepr(n *a.Expr) bool {
- return n.MType().IsStatus()
+func (g *gen) writeExprRepr(b *buffer, n *a.Expr, depth uint32) error {
+ isStatus := n.MType().IsStatus()
+ if isStatus && (n.Operator() == 0) && n.Ident().IsDQStrLiteral(g.tm) {
+ if z := g.statusMap[n.StatusQID()]; z.cName != "" {
+ b.writes(z.cName)
+ return nil
+ }
+ }
+ if err := g.writeExpr(b, n, depth); err != nil {
+ return err
+ }
+ if isStatus {
+ b.writes(".repr")
+ }
+ return nil
}
func (g *gen) writeExprAs(b *buffer, lhs *a.Expr, rhs *a.TypeExpr, depth uint32) error {
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 899c0e3..21853dd 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -13023,10 +13023,7 @@
}
if (wuffs_base__status__is_ok(&v_status)) {
goto label__0__break;
- } else if (v_status.repr !=
- wuffs_base__make_status(
- wuffs_bmp__note__internal_note_short_read)
- .repr) {
+ } else if (v_status.repr != wuffs_bmp__note__internal_note_short_read) {
status = v_status;
if (wuffs_base__status__is_error(&status)) {
goto exit;
@@ -21496,13 +21493,9 @@
}
}
goto label__outer__break;
- } else if (v_lzw_status.repr ==
- wuffs_base__make_status(wuffs_base__suspension__short_read)
- .repr) {
+ } else if (v_lzw_status.repr == wuffs_base__suspension__short_read) {
goto label__outer__continue;
- } else if (v_lzw_status.repr ==
- wuffs_base__make_status(wuffs_base__suspension__short_write)
- .repr) {
+ } else if (v_lzw_status.repr == wuffs_base__suspension__short_write) {
goto label__inner__continue;
}
status = v_lzw_status;