Sema: introduce laziness to @sizeOf

Motivation: the behavior test that is now passing.

The main change in this commit is introducing `Type.abiSizeAdvanced`,
`Value.Tag.lazy_size`, and adjusting `Sema.zirSizeOf` to take advantage
of these.

However, the bulk of lines changed in this commit ended up being moving
logic from value.zig and type.zig into Sema.zig. This logic had no
business being in Type/Value as it was only called from a Sema context,
and we need access to the Sema context for error reporting when a lazy
Value is resolved.

Also worth mentioning is that I bumped up the comptime `@floatToInt`
implementation from using f64 to f128.
This commit is contained in:
Andrew Kelley
2022-05-18 21:24:42 -07:00
parent cd04b49041
commit fcd4efd8ec
5 changed files with 1064 additions and 809 deletions

File diff suppressed because it is too large Load Diff