# stage2: progress towards stage3 · gitcafe/zig

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

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

Visibility: public

Requested revision: 25874747174da2b0e77b3b888d0f5a13aa1a317e

Requested commit: 25874747174da2b0e77b3b888d0f5a13aa1a317e

Commit: 25874747174da2b0e77b3b888d0f5a13aa1a317e

Tree: f715cc1f2ce49c747e2e045e785673d41af3b312

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2: progress towards stage3

 * The `@bitCast` workaround is removed in favor of `@ptrCast` properly
   doing element casting for slice element types. This required an
   enhancement both to stage1 and stage2.
 * stage1 incorrectly accepts `.{}` instead of `{}`. stage2 code that
   abused this is fixed.
 * Make some parameters comptime to support functions in switch
   expressions (as opposed to making them function pointers).
 * Avoid relying on local temporaries being mutable.
 * Workarounds for when stage1 and stage2 disagree on function pointer
   types.
 * Workaround recursive formatting bug with a `@panic("TODO")`.
 * Remove unreachable `else` prongs for some inferred error sets.

All in effort towards #89.

```

## Parents

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

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