aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-01-03 16:50:29 -0500
committerGitHub <noreply@github.com>2022-01-03 16:50:29 -0500
commit81fa31c05456facea1d1963a1e7f665351fb248d (patch)
tree8ea6dba0c5b8ec9e8ba9cdff48189da68c198dfd /src/Sema.zig
parent850b053ea6b7d6f0f5e0e8dbcf37080ca012024f (diff)
parentd94303be2bcee33e7efba22a186fd06eaa809707 (diff)
downloadzig-81fa31c05456facea1d1963a1e7f665351fb248d.tar.gz
zig-81fa31c05456facea1d1963a1e7f665351fb248d.zip
Merge pull request #10451 from ziglang/cache-mode
stage2: introduce CacheMode
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 5ba1e555a7..1b9af88bb1 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -14680,11 +14680,11 @@ fn resolvePeerTypes(
instructions: []Air.Inst.Ref,
candidate_srcs: Module.PeerTypeCandidateSrc,
) !Type {
- if (instructions.len == 0)
- return Type.initTag(.noreturn);
-
- if (instructions.len == 1)
- return sema.typeOf(instructions[0]);
+ switch (instructions.len) {
+ 0 => return Type.initTag(.noreturn),
+ 1 => return sema.typeOf(instructions[0]),
+ else => {},
+ }
const target = sema.mod.getTarget();
@@ -14714,13 +14714,14 @@ fn resolvePeerTypes(
continue;
},
.Int => {
- if (chosen_ty.isSignedInt() == candidate_ty.isSignedInt()) {
- if (chosen_ty.intInfo(target).bits < candidate_ty.intInfo(target).bits) {
- chosen = candidate;
- chosen_i = candidate_i + 1;
- }
- continue;
+ const chosen_info = chosen_ty.intInfo(target);
+ const candidate_info = candidate_ty.intInfo(target);
+
+ if (chosen_info.bits < candidate_info.bits) {
+ chosen = candidate;
+ chosen_i = candidate_i + 1;
}
+ continue;
},
.Pointer => if (chosen_ty.ptrSize() == .C) continue,
else => {},