# compiler: yet more panic handler changes · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/83991efe10d92c4b920d7b7fc75be98ed7854ad7)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 83991efe10d92c4b920d7b7fc75be98ed7854ad7

Requested commit: 83991efe10d92c4b920d7b7fc75be98ed7854ad7

Commit: 83991efe10d92c4b920d7b7fc75be98ed7854ad7

Tree: 7137ee5eb01517aede1c5503c29a2003fca71f80

Author: mlugg

Committer: mlugg

## Message

```
compiler: yet more panic handler changes

* `std.builtin.Panic` -> `std.builtin.panic`, because it is a namespace.
* `root.Panic` -> `root.panic` for the same reason. There are type
  checks so that we still allow the legacy `pub fn panic` strategy in
  the 0.14.0 release.
* `std.debug.SimplePanic` -> `std.debug.simple_panic`, same reason.
* `std.debug.NoPanic` -> `std.debug.no_panic`, same reason.
* `std.debug.FormattedPanic` is now a function `std.debug.FullPanic`
  which takes as input a `panicFn` and returns a namespace with all the
  panic functions. This handles the incredibly common case of just
  wanting to override how the message is printed, whilst keeping nice
  formatted panics.
* Remove `std.builtin.panic.messages`; now, every safety panic has its
  own function. This reduces binary bloat, as calls to these functions
  no longer need to prepare any arguments (aside from the error return
  trace).
* Remove some legacy declarations, since a zig1.wasm update has
  happened. Most of these were related to the panic handler, but a quick
  grep for "zig1" brought up a couple more results too.

Also, add some missing type checks to Sema.

Resolves: #22584

formatted -> full

```

## Parents

- [b3d9b0e3f6bab5d662ec385cf754872f8a90607f](https://git.cafe/gitcafe/zig/commit/b3d9b0e3f6bab5d662ec385cf754872f8a90607f?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/83991efe10d92c4b920d7b7fc75be98ed7854ad7?format=markdown)
