# std.zig.Ast: improve type safety · gitcafe/zig

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

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

Visibility: public

Requested revision: ca6fb30e992fd86ee41a6510ef731e86f5de77c9

Requested commit: ca6fb30e992fd86ee41a6510ef731e86f5de77c9

Commit: ca6fb30e992fd86ee41a6510ef731e86f5de77c9

Tree: 72fc291a37d62fb3eee341ae1203c559968c0856

Author: Techatrix

Committer: Techatrix

## Message

```
std.zig.Ast: improve type safety

This commits adds the following distinct integer types to std.zig.Ast:
- OptionalTokenIndex
- TokenOffset
- OptionalTokenOffset
- Node.OptionalIndex
- Node.Offset
- Node.OptionalOffset

The `Node.Index` type has also been converted to a distinct type while
`TokenIndex` remains unchanged.

`Ast.Node.Data` has also been changed to a (untagged) union to provide
safety checks.

```

## Parents

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

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