# Sema: rewrite \`monomorphed_funcs\` usage · gitcafe/zig

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

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

Visibility: public

Requested revision: da24ea7f36d056cb49e8e91064f06cb724e46f67

Requested commit: da24ea7f36d056cb49e8e91064f06cb724e46f67

Commit: da24ea7f36d056cb49e8e91064f06cb724e46f67

Tree: 0b3920d68166cf664d4c72731d1260ea34a82d72

Author: Jacob Young

Committer: Andrew Kelley

## Message

```
Sema: rewrite `monomorphed_funcs` usage

In an effort to delete `Value.hashUncoerced`, generic instantiation has
been redesigned.  Instead of just storing instantiations in
`monomorphed_funcs`, partially instantiated generic argument types are
also cached.  This isn't quite the single `getOrPut` that it used to be,
but one `get` per generic argument plus one get for the instantiation,
with an equal number of `put`s per unique instantiation isn't bad.

```

## Parents

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

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